Skip to content

cemuka/SignalSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

//  Sample usage
public static class Signaling
{
    ...
    public static readonly Signal       OnGameInit      = new Signal();
    public static readonly Signal<int>  OnPlayerScore   = new Signal<int>();    //newScore
    ...
}

public class GameManager : MonoBehaviour
{
    private void Awake()
    {
        Signaling.OnGameInit.Invoke();
            
        ...
        Signaling.OnPlayerScore.Invoke(10);
        ...
    }
}

public class SomeView : MonoBehaviour
{
    private void Start()
    {
        Signaling.OnGameInit.AddListener(Initialize);
        Signaling.OnPlayerScore.AddListener(OnScore);
    }

    private void OnDestroy()
    {
        Signaling.OnGameInit.RemoveListener(Initialize);
        Signaling.OnPlayerScore.RemoveListener(OnScore);
    }

    private void Initialize()
    {
        //  display 
    }

    private void OnScore(int newScore)
    {
        //  update ui
    }
}

About

Simple and easy to use signal system

Topics

Resources

Stars

Watchers

Forks

Languages