UGUI 代码 动态添加 Event Trigger 的事件

Additionally, if you need more than just the events provided by default, I‘d suggest instead attaching a EventTrigger to your game object. This gives us access to the BaseEventData object 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 void and accept BaseEventData as 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);
时间: 2024-12-08 17:21:06

UGUI 代码 动态添加 Event Trigger 的事件的相关文章

jQuery-为动态添加的元素绑定事件

样例: $("#modify_nick").click(function () { $(this).css("display","none"); $("#nickname_span").empty(); var input = document.createElement("input"); $(input).attr("type", "text"); $(input

WEB前端技巧之JQuery为动态添加的元素绑定事件

jquery 为动态添加的元素绑定事件 如果直接写click函数的话,只能把事件绑定在已经存在的元素上,不能绑定在动态添加的元素上 可以用delegate来实现 .delegate( selector, eventType, handler ) 例如示例: $('someUlSelector').delegate('someLiSelector','click',function(){ //codes... //$(this) for the current jquery instance of

New UI-Java代码动态添加控件或xml布局

New UI-Java代码动态添加控件或xml布局  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://blog.

jQuery给动态添加的元素绑定事件的方法

jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定.在1.7版本以前使用live.但是在1.8版本以后推荐使用on.这里介绍jQuery中如何给动态添加的元素绑定事件在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况 例如 1 <div id="testdiv"> 2 <ul></ul> 3 </div> 需要给<ul>里面动态添加的

代码动态添加ViewPager时出错

当我们在项目中使用java代码动态添加ViewPager时,需要注意一点:必须调用setId()方法为ViewPager设置一个ID. *.在xml布局中加入ViewPager时,我们一般会为ViewPager指定一个ID,因为当我们往这个控件中加入内容时,需要根据这个ID值来找到Viewpager. *.如果我们不使用xml布局文件,而是用java代码添加ViewPager.从原理上看,对于简单的添加控件,java代码可以替换为相应的xml布局,所以在动态添加时设置ID.

jQuery对 动态添加 的元素 绑定事件(on()的用法)

从jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的(官方推荐)首选方法. 当浏览器下载完一个页面的时候就开始渲染(翻译)HTML标签,然后执行css.js代码,在执行js代码的时候就注册了相应绑定的事件,我们平常用jQuery给HTML标签绑定(单击)事件是一般这样写 $("#btnId").click(function () { //触发事件后 逻辑 });  但是对用js动态添加的元素 是无效的,即没有绑定单击事件,所以对于动态添加的标签需要用on()来

动态添加dom中的事件绑定

在添加dom时,会同时添加按钮,或者事件.在动态添加的时候,应该用 $(document).on('event','selector',function(){.......}) 例如:

为动态添加的元素绑定事件

<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js"> </script> <script> $(document).ready(function(){ $("body").on('click','p',function(){ $(this).hide(); }); }); </script>

jq动态添加的元素触发事件无效

<div class='a'> <div class='b'> </div> 其中$('.a')是html页面的元素,$('.b')是jq动态添加的元素.$(".b").click(function(){})方法失效 原来jq中动态添加的元素不能直接使用$(".b").click(function(){});的方法,要使用$(".a").on('click','.b',function(){}); $(&quo