unity中类似NGUI或UGUI的onClick方法的可以调用任何公有方法的实现
2016-05-23 22:43
579 查看
NGUI或UGUI中的onClick方法可以执行任何public方法,一直想要实现这样的一个功能。
首先在NGUI环境下,创建这样的一个类,对任何public方法的调用,代码如下:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MyText : MonoBehaviour {
public List<EventDelegate> onClick = new List<EventDelegate>();//触发事件
// Use this for initialization
void Start () {
}
// Update is called once per frame
//事件触发方法
public void OnClick()
{
EventDelegate.Execute(onClick);
}
}
然后创建一个继承至Editor类的类放在unity的Assets/Editor文件夹下,没有这个文件夹就创建一个,类的代码如下:
[CustomEditor(typeof(MyText ), true)]
public class MyText Editor : Editor
{
protected virtual void DrawProperties()
{
MyText button = target as MyText ;
NGUIEditorTools.DrawEvents("On Click", button, button.onClick, false);
}
}
[CustomEditor(typeof(MyText ), true)]括号中的内容与上面的类名一致
接着只要调用OnClick()方法即可效果如下图:
首先在NGUI环境下,创建这样的一个类,对任何public方法的调用,代码如下:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MyText : MonoBehaviour {
public List<EventDelegate> onClick = new List<EventDelegate>();//触发事件
// Use this for initialization
void Start () {
}
// Update is called once per frame
//事件触发方法
public void OnClick()
{
EventDelegate.Execute(onClick);
}
}
然后创建一个继承至Editor类的类放在unity的Assets/Editor文件夹下,没有这个文件夹就创建一个,类的代码如下:
[CustomEditor(typeof(MyText ), true)]
public class MyText Editor : Editor
{
protected virtual void DrawProperties()
{
MyText button = target as MyText ;
NGUIEditorTools.DrawEvents("On Click", button, button.onClick, false);
}
}
[CustomEditor(typeof(MyText ), true)]括号中的内容与上面的类名一致
接着只要调用OnClick()方法即可效果如下图:
相关文章推荐
- Unity 游戏移植到 Windows10
- 3ds Max 烘焙模型导入 Unity 3D 步骤
- Unity3d Hierarchy 中 拷贝选中Node 的层级路径
- Unity3D -- 触控输入(移动和鼠标)
- unity 打包IPA,减少文件大小的方法
- Unity3d 加载UnityEngine.UI.dll 失败导致 Prefab 上 脚本丢失
- unity 移动端 缩放 旋转
- 【Unity】强制设定分辨率
- Unity3d|5.3.4多场景编辑功能
- 008-实现Unity3d中使用LeanTouch插件进行触屏控制(拖拽、移动、缩放旋转...)
- 007-实现Unity3d中触摸屏幕控制物体的移动 代码实现
- unity3d模型制作规范
- unity3d 瞎子过河,速度慢,小问题,都要搞半天。--(三)
- Unity3d即时战斗之敌人AI和角色攻击
- 英文不好,学Unity3D,一件小事搞疯我--(二)
- Unity动态添加Tag
- Unity-3d 用JSON 文本控制程序
- Unity 对象池简单使用
- Unity中WheelCollider的Slip曲线
- Unity3D控制物体移动