Skip to content

Instantly share code, notes, and snippets.

@chuwilliamson
Created February 7, 2018 21:05
Show Gist options
  • Save chuwilliamson/393285167448890b1ad74792e85fe138 to your computer and use it in GitHub Desktop.
Save chuwilliamson/393285167448890b1ad74792e85fe138 to your computer and use it in GitHub Desktop.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class GameEventArgs : ScriptableObject
{
public void Raise(params Object[] args)
{
for (int i = listeners.Count - 1; i >= 0; i--)
listeners[i].OnEventRaised(args);
}
public List<GameEventArgsListener> listeners = new List<GameEventArgsListener>();
public void RegisterListener(GameEventArgsListener listener)
{
if (listeners.Contains(listener))
{
Debug.LogError("listener is already in list");
return;
}
listeners.Add(listener);
}
public void UnregisterListener(GameEventArgsListener listener)
{
if (!listeners.Contains(listener))
{
Debug.LogError("listener is not in list");
return;
}
listeners.Remove(listener);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment