跳转到主要内容

UE4的鼠标视角控制和鼠标拾取

demi 提交于

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>一. 鼠标拾取的原理</strong></font>

通过从鼠标发出的射线检测(Line Trace By Channel),获取碰触对象(Out Hit -&gt; Hit Result -&gt; Hit Actor),通过对碰触对象的操作,达到拾取物体的效果。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>二. 鼠标位置转换到世界空间</strong></font>

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>三. 设置鼠标的显示和隐藏</strong></font>

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>四. 鼠标的视角控制</strong></font>

1. 新建文件夹UI,在UI文件夹中创建 User Interface(用户界面)-> Widget Blueprint(控件蓝图),命名为W_InGame,可以作为用户UI界面。

2. 在关卡蓝图中,将W_InGame加入到世界场景中,添加W_InGame(Widget)类型的变量InGameWidget,初始化并设置不可见。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

3. 在原有鼠标显示和消失的事件中,增加输入聚焦模式来控制鼠标控制视角的方式。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>五. 创建拾取接口</strong></font>

1. 创建蓝图接口,命名为BPI_Clicked。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

2. 添加或修改函数为OnMouseCliced。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

3. 创建蓝图类BP_X,继承Actor,打开蓝图类,在Class Settings中添加继承的接口为BPI_Clicked,注意编译并保存。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

4. 在BP_X的事件图表中对Event On Mouse Clicked事件进行实现。

<center><img src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center>
<center><img src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

5. 当鼠标点取到实现了BPI_Clickable接口的BP_X类的对象后触发OnMouseClicked函数。

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

PS:可以在BPI_Clicked接口中创建多个函数并且增加输入和输出参数。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>六. 左键点击,物体平滑旋转,移动和缩放。</strong></font>

<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center>
<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center>
<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center>
<center><img width="600" src="http://imgtec.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100563957-27…; alt="UE4的鼠标视角控制和鼠标拾取"></center><br>

<hr>
<font color="#9a9a9a">版权声明:本文为CSDN博主「幽冥丶虾米」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。</font>
<a href="https://blog.csdn.net/qq_14930205/article/details/78636693"><font color="#9a9a9a">原文链接:https://blog.csdn.net/qq_14930205/article/details/78636693</font></a&gt;
<br>