这里还是用蓝图实现(C++应该也可以实现,但是我没试过)。首先需要创建一个界面:
简单画一个按钮就行,不用写逻辑,逻辑我们需要在别的地方写。随后创建一个actor:
内容如下:
这里用到一个popview的组件,简单理解为一个UI界面就行,可以替换成任意的弹窗。注意上图中有一个地方出现了“NOTE”字样,说PopView变量已经是xxx类型的了,不需要进行转换,但是实际上我们这里会把PopView当成一个检测器,如果其内容为空说明还没有创建弹窗,那么就创建弹窗并将新建的弹窗添加到视图中去进行显示。之所以添加这么个变量和相关的判断逻辑就是因为之前没有加上相关的变量与逻辑的时候发现,如果多次点击actor所在的区域,尽管已经弹出弹窗了,但是Event EndInputTouch还是会响应触碰事件,所以最终会创建多个弹窗,导致多个弹窗叠加在一起显示,所以才需要这么个步骤来进行判断,如果弹窗界面确实没有添加到玩家的显示中,那么才进行界面的创建并将创建好的窗口添加到玩家的视图中。popview的内容分为两个部分,一个蓝图一个UI,UI内容与绑定的逻辑:
PopView对应的蓝图的逻辑: