UGUI 代码 动态添加 Event Trigger 的事件
2015-09-30 16:58
435 查看
Additionally, if you need more than just the events provided by default, I'd suggest instead attaching a
EventTriggerto your game object. This gives us access to the
BaseEventDataobject returned from the event, telling us stuff like the object that created the event. Then you can do something like:
//Create an event delegate that will be used for creating methods that respond to events
public delegate void EventDelegate(UnityEngine.EventSystems.BaseEventData baseEvent);Then we can create a method for handling events, the signature must match that of our delegate. So, it needs to return
voidand accept
BaseEventDataas its first and only parameter:
public void DropEventMethod(UnityEngine.EventSystems.BaseEventData baseEvent)
{ Debug.Log(baseEvent.selectedObject.name + " triggered an event!");
//baseEvent.selectedObject is the GameObject that triggered the event,
// so we can access its components, destroy it, or do whatever.
}动态添加 EventTrigger 代码如下,
//从UI gameobject上面获取到 eventtrigger
EventTrigger eventTrigger = buttonObject.GetComponent<EventTrigger>();
//创建一个新的 trigger。 在这个trigger上添加事件类型和回调函数
EventTrigger.Entry entry = new EventTrigger.Entry();
//设置这个eventtrigger的事件类型为 Drop
entry.eventID = EventTriggerType.Drop;
//初始化callback entry.callback = new EventTrigger.TriggerEvent();
//创建一个新的UnityAction, 里面就是我们写的回调函数
UnityEngine.Events.UnityAction<BaseEventData> callback = new UnityEngine.Events.UnityAction<BaseEventData>(DropEventMethod);
//添加到trigger 的 callback里面
entry.callback.AddListener(callback);
//最后添加到物体的eventtriger的trigger里面
eventTrigger.trigger.Add(entry);
相关文章推荐
- 利用StoryBoard修改placeholder颜色(UITextField的placeholder)
- Google Guice 依赖注入框架:简明教程
- poj2299:Ultra-QuickSort
- Parse query on pointer column
- UITableView使用selectRowAtIndexPath不能默认选中cell的问题
- UICollectionViewController 版本新特性
- 安装VMM 2012 R2累积更新1可能遇到的问题
- IOS开发-CALayer和UIView详细汇总
- c笔记05---逻辑表达式,break,continue 区别
- 《SICP》读书笔记--Chapter 1 Building Abstraction with Procedures
- OC编程无法识别UIImage,undeclared identifier 'image'
- Callable与Futrue创建线程
- 异常处理:使用UTF-8编码Mysql仍然抛出Incorrect string value异常
- UITextField键盘弹出调整承载textField的视图使其不被遮挡
- ueEditor 增加插件,超级方便
- DJANGO基础学习之request对象和response对象
- Android 中数据库查询方法query()中的selectionArgs的用法
- jquey实现的动态表格的新增及删除行
- Android.os.Build
- UITableView 二讲