UE4第一人称物理柄组件(PhysicsHandle)抓取 |
您所在的位置:网站首页 › 1000元相当于多少人民币 › UE4第一人称物理柄组件(PhysicsHandle)抓取 |
此抓取功能仅可抓取带有模拟物理(Simulate Physics)的可移动网格体或者带有物理模拟的蓝图组件 首先创建第一人称角色
在角色的合适位置添加相机(Camera)并将使用Pawn控制旋转(Use Pawn Control Rotatioin)勾上 到这里准备工作已经完毕,接下来开始写蓝图。 根据项目设置--输入中的轴映射 如果项目设置中没有 可以添加项目自带功能包的第一人称模板 在角色蓝图事件图表中 添加角色的移动事件 添加物理柄组件(PhysicsHandle) 添加鼠标左键点击事件 (InputAction Fire) 添加射线检测节点(Line TraceBychannel),左侧输入节点选上针对时长(For Duration)和可视性(Visibility) 这里的Start是射线开始的起点,所以我们需要获取相机的位置(GetWorldLocation)来设置成射线的起点 而End是指射线的结束,也可以理解成射线的最长距离 可以在相机的位置(GetWorldLocation)加上相机的向前的向量(GetForwardVector)乘以1000个单位(1000等于10米)设置成射线的终点 将射线检测节点的输出节点中找到检测的组件(Out Hit Hit Component)提升为变量 同时获取此组件的场景变换(GetWorldTransform) 然后将物理手组件拖入图表中 并获取物理手在位置抓取的带旋转的组件(Grab Component at Location with Rotation) 最后对应相连 获取到组件之后,我们就该设置组件被抓取后的位置, 因为被抓取后他的位置会跟随玩家的移动时时刻刻的在更新位置,所以这里我们用到事件Tick(Event Tick) 将物理手拖进事件图表,获取他的抓取组件(Get Grabbed Component) 因为他有没抓上的可能所以需要做下判断 这里用到valid(有效)节点和Branch节点做判断,当判断结果为True(抓到有效组件东西)时,设置被抓取组件的位置和旋转(Set Target Location and Rotation) 判断为False(没抓到有效组件或者抓到组件之外的东西时)不做响应 因为其中包含了旋转(Rotation),所以我们需要获取相机的场景变换(GetWorldTransform),场景变化的旋转就是连接到被抓取组件的旋转,而位置需要加上相机向前向量乘以300(3米)在连接到被抓取组件的新位置上 在当我们需要放下的时候需要在Fire的松开时添加物理手的释放组件(Release Component) 这是所有用到的节点 当然,在任务量巨大使用频繁的情况下,可将射线检测和获取目标位置的节点通通写成函数 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |