一、场景准备,
1.更改游戏模式,创建游戏模式更改并选择,更改default pawn class 为none,用于输入鼠标事件,将floor地板调整到视角可见位置,
2.创建球体,通过 模式栏中的Geometry下的Sphere进行创建
3.选择球体,在细节面板下的Brush Setting创建静态网格物体,重命名Sphere_StaticMesh_1并保存
二、添加碰撞,调整静态网格设置
使用物理引擎时,必须为目标物(Actor)赋予物体体质的本性,就是碰撞。碰撞是具有物理特性的本体,将检测碰撞,与其他物体进行碰撞后返回,由于各种阻力降低物体运动速度的这些特性赋予给目标物。
1.上一步骤保存静态网格时保存至文件夹下的静态网格物体,双击打开静态网格编辑器
2.选择工具栏中的Collision选项选择添加球体简化碰撞,所添加的碰撞与Actor的大小尺寸基本相同
删除碰撞,选中静态网格编辑器中物体外围显示的绿色线框,然后选择Collision中的删除选定碰撞即可删除。
3.添加完成后点击编辑器中的保存按钮进行保存然后关闭静态网格编辑器。返回世界大纲视图中。
三、将物理引擎设置为可用
选中世界大纲视图中创建的静态网格物体,自细节面板的Physics栏中,勾选Simulate Physics 选项。该选项为true,将使用物理引擎。为false不使用物理引擎。勾选后,物体的Transform栏中的Mobility模式自动更改为可移动。
如果将该物体提高,然后点击运行,查看运行效果。会发现物体自由下落,碰到地面后有反弹效果,最后静止不动,如果拖入其他静态网格物体,两个物体进行接触,发现物体重叠,这是因为另外一个物体没有加入碰撞,所以无法产生碰撞效果。
但是,地板我们也没有加碰撞,物体落下后存在物理碰撞效果,这是因为,地板使用的不是一般的立方体的静态网格,而是Unreal Engine中预备的静态网格模板,一开始就预备有撞击,也就是从一开始就加了撞击。所以我们设置的物体,与地板是存在撞击效果的。
四、在关卡蓝图中移动Actor
使用 Add Force 节点,该节点在关卡蓝图中创建时,将情景关联选项取消进行搜索创建。
该节点适用于在一段时间内增加非零的爆发力,
参数:Target (目标) 指定施加力的对象
Force 设置所施加力的信息,可以直接写,也可以为他传递其他节点的值,是一个向量类型
Bone Name 被施加力的形体的命名,为None说明是跟物体(在单纯的静态网格用不到)
Accel Change 为True视为加速度变化而非物理力量变化(质量无效)
通过鼠标横向移动对物体产生移动效果,使用获取鼠标x值节点、Tick时间节点、make vector 节点、vector*float节点、场景中获取Sphere_StaticMesh_1对象节点
注意:输入的值太小,导致效果不明显,因为物体也是存在一定质量的
最后效果:调整好视口运行后可以看到:移动鼠标会看到物体有推动的效果,如果没有效果将 vector*float节点中的值在进行扩大。