原文链接:UE4学习心得:SCENE COMPONENT 蓝图的一个简单应用
Scene Component 是蓝图类中一个不怎么常用的分类(特别是对于新手而言),主要是其实现的功能可以在Actor 类中用相同的方法实现,使其作用显得有点多余。
笔者在使用过这个类之后发现其作用更相当于一个接口,可以被其他蓝图类(C++ 类当然也可以)调用,且操作方法简单,实现后效果明显,在这里介绍一个简单的应用便于读者理解和使用这个蓝图类。
准备工作
首先是创建一个 Scene Component 蓝图类,命名为 HoverComponent 。
接下来是编写蓝图逻辑之前的工作:创建两个 Float 变量,命名为 TraceLength 和 HoverForce ,
TraceLength用于调整物体浮动时的幅度,HoverForce表示物体在浮动时受到的压力。
TraceLength 初始值设为 150 ,可将该变量设为公共变量,便于在游戏中进行实时更改;
HoverForce 初始值设为 500000。
事件调度
上述节点实现了 Component 的初始值设置和模拟物理效果(Simulate Physics)设置。
然后调用 Event Tick 事件,在游戏的每一帧进行射线检测,检测的方向 为物体的 Z 轴方向,幅度 则为之前设置的 TraceLength
检测的结果暴露出来后将 法相方向碰撞矢量(Impact Normal) 和 位置矢量(Location) 进过简单的运算后得到物体 浮动力矢量(Add Force),添加到 Component 上
最后设置 Component 的 线性减震(Linear Damping) 和 角度减震(Angular Damping) ,这样一个简单的物体浮动效果蓝图就制作完成了。
实际测试
在关卡中创建一个 Cube 或者 Sphere 静态物体组件,选中后在 Detail 面板中添加上文中制作完成的HoverComponent ,将物体的移动属性改为 Movable ,将静态物体组件放置到场景中,运行关卡,进行测试,可以在 Default 中更改 TraceLength 的值查看效果
笔者的测试结果如下图所示