Unity 事件2
UIMouseEvent.cs:
using UnityEngine;
using System; public abstract class UIMouseEvent : MonoBehaviour
{
public EventHandler<EventArgs> MouseEvent { get; set; }
}
UIEvent.cs:
using UnityEngine;
using System;
using System.Collections.Generic;
using System.Collections; public class UIEvent
{
public static GameObject FindChild (string objName)
{
GameObject obj = GameObject.Find("quickLoginBtn");
return obj;
} public static void AddChildMouseClickEvent (string objName, EventHandler<EventArgs> action)
{
AddMouseClickEvent (FindChild (objName), action);
} public static void AddMouseClickEvent (GameObject obj, EventHandler<EventArgs> action)
{
if (obj != null) {
AddEvent<UIMouseClick> (obj, action);
}
Debug.Log("111111");
} public static void AddEvent<T> (GameObject obj, EventHandler<EventArgs> action) where T : UIMouseEvent
{
T mouseEvent = obj.GetComponent<T> ();
if (null != mouseEvent) {
GameObject.DestroyImmediate (mouseEvent);
}
mouseEvent = obj.AddComponent<T> ();
mouseEvent.MouseEvent = action;
Debug.Log("22222");
} public static void AttachEvent ()
{
Debug.Log ("AttachEvent");
AddChildMouseClickEvent ("quickLoginBtn", OnClickStart);
} private static void OnClickStart (object sender, EventArgs e)
{
Debug.Log("OnClickStart");
}
}
UIMouseClick.cs:
using UnityEngine;
using System; public class UIMouseClick : UIMouseEvent
{
void OnClick()
{
Debug.Log("hhhhh");
UIEvent.AttachEvent();
if(null != MouseEvent)
MouseEvent(gameObject, null);
}
}
最后把UIMouseClick.cs放到NGUI的button上面就可以了,这个button的名字为“quickLoginBtn”,结果如下:
Unity 事件2的更多相关文章
- Unity事件
unity3d事件函数整理,事件,回调函数,消息处理 Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Star ...
- unity 事件顺序及功能说明
unity3d中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结. Awake 当 ...
- C#——Unity事件监听器
事件监听器 事件类型 public enum BaseHEventType { GAME_OVER, GAME_WIN, PAUSE, ENERGY_EMEPTy, GAME_DATA } 事件基类 ...
- Unity可视化数据:创建图表
本文由Aoi翻译,转载请注明出处.文章来自于catlikecoding,原文作者介绍了Unity制作图表.可视化数据的方法.更多的名词解释内容,请点击末尾的“原文链接”查看. 介绍 这个教程里,我 ...
- 喵的Unity游戏开发之路 - 互动环境(有影响的运动)
如图片.视频或代码格式等显示异常,请查看原文: https://mp.weixin.qq.com/s/Sv0FOxZCAHHUQPjT8rUeNw 很多童鞋没有系统的Unity3D游戏开发基础,也不知 ...
- Unity3D心得分享
本篇文章的内容以各种tips为主,不间断更新 系列文章 =========================== "Unity测试系列"文章索引 Unity-Animator深入系列 ...
- gameUnity 网络游戏框架
常常在想,有没有好的方式,让开发变得简单,让团队合作更加容易. 于是,某一天 动手写一个 架构, 目前版本 暂定 0.1 版本.(unity5.0.0f4 版本以上) 我打算 开源出来 0.1有什么功 ...
- 做好Unity4.x开发项目规划
1. 是否要用lua 2. (对于需操作的游戏)客户端游戏如何做战斗验证 下面列举小坑吧.不建议都绕开,毕竟没有那么多时间做前期调研的. 对应版本Unity4.x 1. 客户端程序层面 总的来说C#超 ...
- U3D开发性能优化笔记(待增加版本.x)
http://blog.csdn.net/kaitiren/article/details/45071997 此总结由自己经验及网上收集整理优化内容 包括: .代码方面: .函数使用方面: .ui注意 ...
随机推荐
- pm2常用的命令
exit //退出 ssh www@25.17.1.54 // 远程登录主机sudo su // 获得 root 权限 并且进入目录 /home/wwwpm2 list // 查看当前的列表 id 和 ...
- bound和unbound方法,类的绑定和非绑定是什么
作者:灵剑链接:https://www.zhihu.com/question/41006598/answer/148994582来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- bzoj 1779
较水的网络流. /************************************************************** Problem: 1779 User: idy002 L ...
- bzoj 3052 树上莫队 待修改
感谢: http://vfleaking.blog.163.com/blog/static/174807634201311011201627/ http://hzwer.com/5250.html 好 ...
- iOS防止button重复点击
项目中常会遇到在按钮的点击事件中去执行一些耗时操作.如果处理不当经常会出现连续多次点击push多次的情况,造成不好的用户体验. 一种情况是用户快速连续点击,这种情况无法避免.另一种情况是点击一次后响应 ...
- Shell基础学习(五) test命令
1.数值测试 参数 说明 -eq 等于则为真 -gt 大于则为真 -lt 小于则为真 -nq 不等于则为真 -ge 大于等于为真 -le 小于等于为真 示例: num1= num2= if test ...
- Jenkins使用jenkins-cli.jar进行远程调用时出现“ERROR: No such job 'test'”或者权限不够等问题解决(Windows)
网上最提倡的解决办法是用SSH的key进行登录,但是我发觉Linux上非常容易实现,但是Windows压根不知道在哪里设置. 原文:https://issues.jenkins-ci.org/brow ...
- JMX操作实例--做一回技术控
我来做一回技术控,这部分内容也是简单的API调用例子而已,做一回技术控,发点小骚文,不过你看了,也许知道JConsole是怎么做出来的了,呵呵! 先不用管他干什么,代码运行后,自己改改自然知道做什么的 ...
- <摘录>linux signal 列表
Linux 信号表 Linux支持POSIX标准信号和实时信号.下面给出Linux Signal的简表,详细细节可以查看man 7 signal. 默认动作的含义如下: 中止进程(Term) 忽略 ...
- 分享我用Taker做任务时需要的各种资源的精华帖,方便查阅
http://tieba.baidu.com/p/2310764470 第一名 [Tasker论坛] https://groups.google.com/group/tasker/?pli=1http ...