以下是我測試成功的結果
EventManager.cs (放於Plugins資料夾裡)
===================================
using UnityEngine;
using System;
using System.Collections.Generic;
using System.Collections;
public class EventManager : MonoBehaviour{
public static event Action<string> TestEvent;
public static void TestEventError(string error){
if( TestEvent != null )
TestEvent(error);
}
}
===================================
TestEvent.js
===================================
function Start () {
EventManager.TestEvent += onTestEvent;//偵聽事件
EventManager.TestEventError("Message");//傳送事件,可於任何地方
}
function onTestEvent(error:String){
print(error);
EventManager.TestEvent -= onTestEvent;//取消偵聽事件
}
===================================
請問一下, 那這部分的程式您是應用在哪個部份呢??
回覆刪除不太清楚event listener 的實際用處是在哪部分
基本上event listener是設計模式中的一種
刪除主要是用來偵聽事件,可以於任一地方發送事件
範例中的EventManager.TestEventError("Message");
可於任一地方偵聽事件
範例中的EventManager.TestEvent += onTestEvent;
與解除偵聽事件
範例中的EventManager.TestEvent -= onTestEvent;
也就是說如果在任何地方(腳本)發送事件,就會在任何有偵聽事件地方(腳本)被執行!
詳細使用方式可以參考以下這本書
http://www.tenlong.com.tw/items/9867794524?item_id=33235