2012年8月17日 星期五

實踐 unity event listener for javaScript And C#

我上網找過許多的資料,基本上javaScript 實踐 event listener 有困難,必須搭配C#
以下是我測試成功的結果


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;//取消偵聽事件
}



===================================


2 則留言:

  1. 請問一下, 那這部分的程式您是應用在哪個部份呢??

    不太清楚event listener 的實際用處是在哪部分

    回覆刪除
    回覆
    1. 基本上event listener是設計模式中的一種
      主要是用來偵聽事件,可以於任一地方發送事件
      範例中的EventManager.TestEventError("Message");

      可於任一地方偵聽事件
      範例中的EventManager.TestEvent += onTestEvent;
      與解除偵聽事件
      範例中的EventManager.TestEvent -= onTestEvent;

      也就是說如果在任何地方(腳本)發送事件,就會在任何有偵聽事件地方(腳本)被執行!

      詳細使用方式可以參考以下這本書
      http://www.tenlong.com.tw/items/9867794524?item_id=33235

      刪除