關於unity 使用delegate 和 event 小例子
本人屬於水平不高的,看了專案中使用的delegate和event,拿來分享一下。
網上關於delegate和event的例子已經非常非常多了,講解的一定比我詳細,但是有時時間緊迫沒時間仔細研究想拿來直接用可以看看我這個小例子。
1.首先寫委託和事件的指令碼 Main:
public class Main : MonoBehaviour
{
public delegate void PointDelegate(string message);
public static event PointDelegate PointEvent;
public static void DoEvent(string message)
{
PointEvent(message);
}
}
2.在unity建立一個按鈕,按鈕上繫結EventClick這個指令碼:
public class EventClick : MonoBehaviour
{
void OnClick()
{
Main.DoEvent("click");
}
}
3.在unity建立一個空的物體,上面繫結EventMonitor這個指令碼:
public class EventMonitor : MonoBehaviour
{
void Start()
{
Main.PointEvent += Do;
}
private void Do(string message)
{
Debug.Log(message);
}
}
說明:
Main這個指令碼主要是定義委託和事件,EventClick這個指令碼相當於廣播訊息,EventMonitor這個指令碼是監聽訊息只要接受到事件PointEvent它就執行以下Do函式。
可以假設Main相當於定義事件的地方,EventClick這裡可以想象成接受到了一條網路層的訊息(如伺服器充的鑽石到賬了)然後它廣播一下,EventMonitor可以想象成UI上掛的指令碼監聽廣播的訊息(如剛才廣播了鑽石到帳了,那麼我這個開啟的UI有一個地方顯示玩家擁有的鑽石數,這時就更新一下)。
PS:監聽的地方可以寫很多,所以一條事件廣播出來,只要是啟用的GameObject有監聽就會執行該乾的事情。
待csdn下載稽核通過後,我會把我的例子上傳上去,不要積分的。嘿嘿。
下載地址:http://download.csdn.net/detail/bill501y/8383679