Unity3D (C#)事件分发机制的实现
2016-09-30 10:25
375 查看
实现类似下图的功能,金钱和能量的加减操作
using UnityEngine; using System.Collections; public class WindowCtr : MonoBehaviour { public CtrEnergy energyCtr; public CtrMoney moneyCtr; public Money money; public Energy energy; // Use this for initialization void Start () { //UIButton[] energyCtrArr = energyCtr.btnArr; // UIButton[] moneyCtrArr = moneyCtr.btnArr; money = GetComponentInChildren<Money>(); energy = GetComponentInChildren<Energy>(); moneyCtr.clickCall += Click2; energyCtr.clickCall += Click1; } // Update is called once per frame //体力 void Click1 (GameObject go) { Debug.Log("----体力-----"); energy.SetEnergy(go.name); } //金钱 void Click2(GameObject go) { Debug.Log("金钱"); money.SetMoney(go.name); } }
using UnityEngine; using System.Collections; public class CtrMoney : MonoBehaviour { public UIButton[] btnArr; //UIEventListener.VoidDelegate //声明一个委托类型 public delegate void VoidCall(GameObject go); //声明一个事件 public event VoidCall clickCall; // Use this for initialization void Awake () { btnArr = GetComponentsInChildren<UIButton>(); for (int index = 0; index < btnArr.Length; index++) { UIEventListener.Get(btnArr[index].gameObject).onClick = Click; } } void Click(GameObject go) { if (clickCall == null) return; clickCall(go);//事件分发 } }
using UnityEngine; using System.Collections; public class CtrEnergy : MonoBehaviour { public UIButton[] btnArr; public event CtrMoney.VoidCall clickCall; // public event UIEventListener.VoidDelegate clickEvent; // Use this for initialization void Awake() { btnArr = GetComponentsInChildren<UIButton>(); for (int index = 0; index < btnArr.Length; index++) { UIEventListener.Get(btnArr[index].gameObject).onClick = Click; } } void Click(GameObject go) { if (clickCall != null) clickCall(go); } }
相关文章推荐
- 【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher
- c++实现类似c#事件机制的链接
- C# Tip -- Component 子类标准化事件实现机制
- Lua中实现类似C#的事件机制
- Lua中实现类似C#的事件机制
- 基于事件分发机制实现的表头固定的Listview
- C# Tip -- Component 子类标准化事件实现机制
- 基于事件分发机制,以最小代价实现listview顶部悬浮效果
- Lua中实现类似C#的事件机制
- 从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决办法
- 从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决办法
- lua实现c#事件机制
- C#内置事件机制在Unity3D应用
- Lua中实现类似C#的事件机制
- Lua中实现类似C#的事件机制
- Lua中实现类似C#的事件机制
- java基础学习总结——关于Java中事件分发和监听机制实现的代码实例
- Android View中触摸事件分发机制的实现
- Unity教程之-Unity3d中基于订阅者模式实现事件机制
- Android实现机制(三)——View事件分发机制