除了SendMessage 那几个方法以外 还可以使用delegate 来实现
Listener:using UnityEngine;using System.Collections;public class Listener : MonoBehaviour { // Use this for initialization void Start () { EventDispatcher ev = GameObject.Find("Cube").GetComponent(); ev.ev += OnEvent;//可装载多个delegate ev.ev += OnEvent; // ev.ev = OnEvent; } void OnEvent(GameObject obj) { Debug.Log(obj.ToString() + "123" ); } // Update is called once per frame void Update () { }}
EventDispatcher:using UnityEngine;using System.Collections;public class EventDispatcher : MonoBehaviour{ public delegate void EventHandle(GameObject obj); public EventHandle ev; // Use this for initialization void Start() { if (ev!=null) { ev(this.gameObject); } } // Update is called once per frame void Update() { }}