UE4蓝图入门知识和UI弄一个控件事件
1.最常用的功能:显示鼠标
打开Blueprints->Open Level Blueprint,打开场景蓝图
调用Show Mouse Cursor,将Get Player Controller关联到它的Target里,点击Compile,再运行就可以看到鼠标显示在场景中的。
2. 场景中的actor接收鼠标点击事件:以入无论是Unity还是WebGL的项目,要做模型的点击事件就非常麻烦,通常的做法都是要用射线检测的方式,通常屏幕发射射线,与模型产生碰撞时才确定点击事件。但是UE里就相对比较简单了:先设置Enable Click Events
接着在场景中选中要响应事件的模型,右键Add Event->OnClick
这个时候会自动在场景蓝图中显示出点击事件:
响应一下点击事件,就打个log:
运行并点击模型看到屏幕上有成功打印出log
4. 创建UI,并响应UI的点击事件:
引擎左下角选中Content右键创建一个新文件夹,用来放UI资源
接着选中UI文件夹右键创建Widget BluePrint
命名为MyMainUI
双击打开UI蓝图,左侧就是UI的各种控件,和其他平台的大同小异了。
拖放一个Button到编辑器里:
接着选中Button,在编辑器右侧添加Button的点击事件:
会自动切换UI事件蓝图页面:
这个时候还需要将UI加载到场景中显示,需要用到Create Widget方法:
返回打开场景蓝图,在启动事件Event Begin Play里添加启动时创建UI:
先添加Create Widget函数,接着再添加 Add to viewport函数。
还要将Create Widget函数里的Select Class选择要刚刚创建的MyMainUI
运行查看效果:
最后,要在场景蓝图里做逻辑处理的话,显然这种UI事件响应方式并不能满足需求,这个需要就需要用到一种类似于事件委托的方式来实现:
返回UI蓝图里,左侧添加自定义的EventDispatcer,然后在OnClick方法里添加Call命令
这里的添加方式是直接输入自定义的名字,例如我定义的是myButtonEventDispatcher,就会出来下面这些函数可引用了。
定义好后,可在场景蓝图里接收这个控件的事件委托:同样的道理,直接搜索自定义的名字,例如我定义的是mybutton,直接搜索mybutton即可出来Bind Event to My Button Event Dispatcher
这个Bind Evnet to My Button Event Dispatcher里的Target 就是从My MainUI里得到,所以从它这里给到一条引线,如下图:
并且要Event里拉出引线并搜索 add custom event,创建新的响应事件。
创建好事件响应内容,保存并编译查看结果。
结果也能响应到点击事件,因此这种方式就能更加灵活地运行在项目开发中。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfaegjf
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01