网站首页 > 游戏开发 正文
Unity新的消息系统已经完全取代了之前的sendMessage。总体来说这玩意没什么大用,因为C#的 代理事件委托完全能更好的替代他。只是UGUI中大量的在使用新的消息系统。运行时怎么给UI添加事件,大家可以看我之前的文章 UGUI研究院之控件以及按钮的监听事件系统(五)
如下图所示,这里我就先不考虑运行时添加,在编辑模式下给Image添加一个EventTrigger的脚本。然后在下面就可以选择事件类型了,这里我选择Pointer Click 也就是对点击它进行监听。
Button 会自动带Click这个脚本。 Text的话和Image一样加EventTrigger组件即可。
正常情况下,我得用手点击它才会进入我的监听方法。假如我不想点击触发,我就想在某个时间点自动触发怎么办? 其实还有个方法就是自己去调用点击监听的方法,但是有个问题,比如按钮点击的时候自身会按下 抬起 会有颜色的变化。还有就是如果 多个按钮 监听方法写了多个方法里 也就不好调用了。
下面直接上代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | using UnityEngine ;
using UnityEditor ;
using System ;
using UnityEngine . EventSystems ;
using UnityEngine . UI ;
public class MyScript : MonoBehaviour
{
public Button uiButton ;
public Image uiImage ;
public void Click ( GameObject go )
{
Debug . Log ( go . name ) ;
}
void OnGUI ( )
{
if ( GUILayout . Button ( "Auto Button" ) )
{
ExecuteEvents . Execute < IPointerClickHandler > ( uiButton . gameObject , new PointerEventData ( EventSystem . current ) , ExecuteEvents . pointerClickHandler ) ;
ExecuteEvents . Execute < ISubmitHandler > ( uiButton . gameObject , new PointerEventData ( EventSystem . current ) , ExecuteEvents . submitHandler ) ;
}
if ( GUILayout . Button ( "Auto Image" ) )
{
ExecuteEvents . Execute < IPointerClickHandler > ( uiImage . gameObject , new PointerEventData ( EventSystem . current ) , ExecuteEvents . pointerClickHandler ) ;
}
}
}
|
Handler大家可以去这里查 http://docs.unity3d.com/Manual/SupportedEvents.html
猜你喜欢
- 2023-06-10 VAC无法验证你的游戏会话怎么办?解决方法大全!
- 2022-04-24 Unity3D研究院之通过ipa或apk获取游戏所使用的unity和Xcode版本
- 2022-04-24 Unity3D研究院编辑器之脚本生成Preset Libraries(十四)
- 2021-09-07 Unity3D研究院之系统内置系统图标大整理
- 2021-09-06 Unity3D研究院编辑器之5.3JSON的序列化
- 2021-09-06 Unity3D研究院编辑器之脚本打开SpritePacker窗口(十七)
- 2021-09-06 #你好Unity3D#Hierarchy视图监听gameObject点击事件
- 2021-09-04 Unity3D研究院编辑器之自定义默认资源的Inspector面板(十)
- 2021-09-04 Unity3D研究院之两个游戏工程资源同步问题(八十六)
- 2021-09-04 Unity3D研究院编辑器之不实例化Prefab获取删除更新组件(十五)
你 发表评论:
欢迎- 12-06如何自定义Excel2003散点图的数据标志
- 12-06excel2007的sheet不见了怎么办
- 12-06Excel2010中进行设置取消密码的操作方法
- 12-06excel怎样使用IMSUM函数
- 12-06EXCEL快速输入数据
- 12-06excel中设置次要坐标轴的教程
- 12-06excel2003冻结窗格的教程
- 12-06Excel如何输入上标下标
- 开源分类
- 最近发表
- 开源网标签
本文暂时没有评论,来添加一个吧(●'◡'●)