ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UE4复习4_射线检测

2020-04-17 15:00:27  阅读:308  来源: 互联网

标签:复习 fire 插槽 射线 雕像 smoke text UE4


假如游戏中有一个需要我们进行交互的物体,可以通过射线检测来判断角色与改物体是否满足条件(比如面向它且在一定距离之内)

首先创建了一个雕像,并且添加了两个粒子系统,smoke和fire,还有一个旋转的text。

当我们靠近该雕像且正视它时,按鼠标左键会使得smoke,fire,text被激活。

雕像的蓝图:

 

  

 

 雕像的蓝图如上,游戏开始时smoke,fire,text都是不可见的。

写了一个函数active all,如果传入值是true,那么会将三者的值改为可见,且将控制text 是否旋转的text rotate布尔值也修改为true。

 

然后就是射线检测了,思路是首先需要在角色身上创建一个插槽作为射线的起始点,然后在将control rotation的作为视角方向。

这样发出的射线起始点为插槽,终点为 control rotation的vector * 长度 +插槽起始点。步骤如下:

在角色的骨骼里找到head,并且创建一个插槽,命名为socket_head;(如图,可以通过控制柄来自定义插槽的位置,不一定非在头上)

 

 

在角色蓝图中右键trace,会发现许多射线检测的函数,这里使用的是 line trace by channel;

通过上述确定了射线的起始点和终点,这里射线的长度为400;输出的是布尔值是射线是否被阻挡,如果被阻挡,强制转换阻挡射线的物体为statue,如果转换成功,说明是雕像阻挡了射线,再调用它的active all函数将smoke,fire,text激活。

 

 

 刚进入游戏是这样的:

 

 靠近并点击鼠标左键后被激活:

 

 

注意因为法线选择的是control rotation,所以我们必须将屏幕中心点对准该雕像才有用。

法线也可以选择其他方向。比如下面这个,是以鼠标在场景中的三维坐标为起点,方向为该点到摄像机

 

 

 我们也可以把 draw debug type 打开,这样就能看到射线的具体位置了。

 

 

再比如这样些,使法线的方向一直为角色的forward方向,这样即使我们旋转control 也不会改变射线的发射方向

 

标签:复习,fire,插槽,射线,雕像,smoke,text,UE4
来源: https://www.cnblogs.com/reluctante1/p/12719734.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有