Advertisement
Pro_Unit

GameEventTemplate

Mar 2nd, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.17 KB | None | 0 0
  1. using System.Collections.Generic;
  2.  
  3. using UnityEngine;
  4. namespace $NAMESPACE_NAME$
  5. {
  6.     [CreateAssetMenu (
  7.         fileName = "GameEvent$TYPE_NAME$",
  8.         menuName = "$NAMESPACE_NAME$/GameEvent/$TYPE_NAME$")]
  9.     public class GameEvent$TYPE_NAME$ : ScriptableObject
  10.     {
  11.         [SerializeField]
  12.         public List<GameEventListener$TYPE_NAME$> eventListeners = new List<GameEventListener$TYPE_NAME$> ();
  13.  
  14.         public void Raise ($TYPE_NAME$ arg)
  15.         {
  16.             for (int i = eventListeners.Count - 1; i >= 0; i--)
  17.                 eventListeners[i].OnEventRaised (arg);
  18.         }
  19.  
  20.         public virtual void RegisterListener (GameEventListener$TYPE_NAME$ listener)
  21.         {
  22.             if (!eventListeners.Contains (listener))
  23.                 eventListeners.Add (listener);
  24.         }
  25.  
  26.         public virtual void UnRegisterListener (GameEventListener$TYPE_NAME$ listener)
  27.         {
  28.             if (eventListeners.Contains (listener))
  29.                 eventListeners.Remove (listener);
  30.         }
  31. #if UNITY_EDITOR
  32.         [ContextMenu ("Show path")] public void ShowPath () { Debug.Log (UnityEditor.AssetDatabase.GetAssetPath (this)); }
  33. #endif
  34.     }
  35.  
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement