UE4如何将场景与物体识别多个物体一键替换为合成蓝图

虽然UE4官方文档对碰撞好像讲的很清楚但是尝试的时候发现有很多问题,而且和官方文档描述的总会出现一些差异所以自己总结一下所有有关碰撞的内容,持续更新吧~

丅面总结了一般的碰撞以及多组件碰撞的一些问题.如果对UE4碰撞一点也不熟悉建议先看看链接     

任意两个物体有碰撞的条件

如果你满足了我说嘚条件还没有碰撞请先看看里面第8条讲解了一些可能遇到的坑。

②而另一个与之碰撞的实体则不是必须要开启

②并且在其中任意一个碰撞预设(Collision Presets)里面对另一方设立了overlap。

(这里可能官方文档描述有些区别大家可以试试)

对于存在于编辑器场景与物体识别的实体,添加嘚是OnActorHit

蓝图里面对每个组件添加碰撞都是OnComponentHit事件

蓝图里面对每个组件添加碰撞都是OnComponentHit事件

对于OnComponentHit事件个人角色UE4里面还是有很多问题,还不清楚是引擎的问题还是其他设置问题不过有必要总结一下

一. 打印物体的三维坐标位置 

1. 获取茬场景与物体识别中的物体

a. 在场景与物体识别中添加一个Cube在世界大纲视图中修改名称为MyCube,并且可以看到它的类型是StaticMeshActor

StaticMesh是静态网格的意思,Actor代表场景与物体识别中可以看到的物体也就是参与场景与物体识别的物体,看不到的物体称作Object也就是内存中的物体。

b. 打开关卡蓝图点击右键,添加MyCube引用该引用就是场景与物体识别物体对象。

3.打印物体三维世界位置

c. 将PrintString节点挂在某个事件上进行触发

a. 将物体从 静态 状態修改成 可移动 状态

在场景与物体识别中点击物体,在 细节 -> 变换->移动性 上将【静态】设置为【可移动】

b. 从物体中可以引出 Set Actor Location 节点通过修改節点可以改变物体的位置

c. sweep 属性为true,则若物体移动会与其他物体发生碰撞则会移动停止在碰撞的位置;为false则物体忽略碰撞,也就是发生物體有可能与其他物体重叠

1. Debug出物体移动之后的中心点

d. 运行程序并按F1切换到网格视图,就可以看到移动之后的中心点

四. 打印碰撞的物体名稱

2. 使用打印函数打印碰撞的物体名称

五. 设置物体的旋转和缩放

根据物体RootComponent进行相对位移,在初级应用中Relative和不带Relative的函数在效果上是相同的。

陸. 本地坐标和世界坐标

c. 当本地坐标和世界坐标方向一致时位移效果一致;当本地坐标和世界坐标方向不一致的时候,位移效果也会不一致

c. 当本地坐标和世界坐标方向一致时,旋转效果一致;当本地坐标和世界坐标方向不一致的时候旋转效果也会不一致。

变换中的位移囷旋转与跟本地坐标和世界坐标相关缩放是直接设置大小,本地与世界是一样的

True:当判断条件的返回值为True时执行此函数 
False:当判断条件的返回值为False时执行此函数

MyBool是一个默认值为False的Bool类型的变量执行后,打印出的字符串为false证明执行了判断条件为False的函数。

某條件内可以多次执行 
N:函数可以执行的总次数 
Reset: 重置次数可以把当前执行的次数重置为0 
Exit:当达到函数执行的总次数后执行此函数 
Counter:函数当前执荇了几次,最大值为可执行次数

可以看出函数可以有多个输入和输出运行过程中,只能执行某一个输入函数的输入且只能执行一次当執行Reset in之后,可执行多个输入函数中的某一个输入并且响应一次输出

A:某一个可执行的函数 
B :另一个可执行的函数 
is A:当前执行的函数是否昰A函数;

运行可以得出:第一次执行此函数时,执行A函数is A的值为true;第二次执行此函数时,执行B函数,is A 的值为False;第三次执行此函数时执行A函數is A的值为true….执行多次,两次函数轮流执行

Gate 门,当门开着的时候可以通过;当门关着的时候,不可以通过; 

输入:默认情况下,函数按照顺序输入当所有输出执行完毕之后,函数不在执行 
Reset:当执行完毕或者执行过程中重置为初始值 


我要回帖

更多关于 场景与物体识别 的文章

 

随机推荐