—–無輸入event—–<
-基本-< 建立基本的無輸入event public event Action NotInputEvent;
註冊事件 NotInputEvent += FunctionA; (void FunctionA() { print(“A”); }) NotInputEvent += FunctionB; (void FunctionB() { print(“B”); }) NotInputEvent += FunctionC; (void FunctionC() { print(“C”); })
取消註冊 NotInputEvent -= FunctionC;
觸發事件 NotInputEvent.Invoke();
當事件觸發時,被註冊進event的function都會受到調用 當前情況為 Print出 A,B 而FunctionC 因為被取消註冊所以沒受到調用(print(“C”);)
-實際情況、運用-< 以彈珠台舉例
建立event - public event Action OnGame OnGame += LoadSceneObject; OnGame += SpawnMarbles;
Function(不同腳本) - 載入場景物件 void LoadSceneObject() { loadSceneObject….; OnGame -= LoadSceneObject; }
重生出彈珠
void SpawnMarbles() { spawnMarbles….};
情況 - 當第一次進入遊戲時 OnGame.Invoke(); 載入場景物件、重生出彈珠
當玩家死亡 OnGame.Invoke(); 重生出彈珠
-需要注意的點-< 當Invoke時若有無法被調用的Function(如腳本被Destory),會出現Error
-運用上的細節-< if(NotInputEvent != null) { NotInputEvent.Invoke(); } 可以簡寫成 NotInputEvent?.Invoke();
—–無輸入event—–<
痾…我的排版