• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

UE4蓝图入门知识和UI弄一个控件事件

武飞扬头像
蒙双眼看世界
帮助5

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
系列文章
更多 icon
同类精品
更多 icon
继续加载