上一篇文章我们说了如何在UMG蓝图中直接绑定事件,但是其实按钮或者勾选框之类的交互控件,有多种方式可以实现其交互触发,比如我们这次讲一下如何在ACTOR蓝图中给按钮什么的绑定事件。首先讲一下为什么要把UMG放在ACTOR蓝图里:

主要是因为便于移动,尤其是像VR交互界面中,我们的交互菜单并不是铺满整个屏幕的,而是经常出现在各种空间位置的,这时候将UMG丢到ACTOR里面,然后就可以向移动蓝图一样,随便移动交互屏幕的位置了!
总之这个功能可以帮助大家在三维空间场景中,在任意位置添加需要交互的UMG界面。

那么如何在actor蓝图里面添加UMG交互界面呢?

第一步,新建一个空白actor蓝图

(这个我就不细讲了,就是在内容库空白区域内右键,蓝图类——Actor )

第二步,在空actor蓝图中,新建一个widget控件,如下图

点击新建的widget控件,在右侧的细节菜单栏里面,USER INTERFACE分栏下,widge class改为你的UMG屏幕,将分辨率设置为和UMG相同的分辨率

然后将设置好的actor 拖到场景之中,你就能看到浮空的自己的UMG界面了。如果拖进去没东西,可以看看是不是UMG界面放反了,UMG在ACTOR里面本质上也是一个片体,所以只有正面能够被摄像机看到,反面光线是直接穿过的什么也看不到,如果绕到actor后面可以看到UMG界面,就将物体或者蓝图场景中的UMG旋转180度,就好控制了。

 

那么第二步,如何在这个可以随便移动位置的蓝图UMG中,给自己的按钮绑定事件?

还是开始这张图,进入我们包含UMG的这个ACTOR蓝图界面,添加上面这样的蓝图节点

这里我PS了一下……

首先beginplay是当关卡开始就触发的节点,前面感觉就是将这个widget转换为可以交互的东西,然后从类型转换之后,拉出一个设置 wigdet 节点(set widget object ),之后从设置发出的蓝色节点中,拖出CHECK BOX (勾选框)或者BUTTON(按钮) 之后再从节点中拖出一个绑定事件到 on checkstart changed(表示勾选状态改变的时候,按钮是另一个事件on clicked)这时候从红色的事件端口拖出一个自定义事件(custom evets)节点,这个节点就可以触发你想要触发的事件了(比如放音乐,比如震动,比如切换关卡,图片中是隐藏显示图层),在这个custom event自定义事件节点后拖出来事件节点就好了。

这样,就完成了在actor蓝图的UMG中,给指定的按钮或者勾选框来附加触发事件啦!