Home

Awesome

Signals

Join the chat at https://gitter.im/ActorsFramework/Lobby Join the chat at https://discord.gg/ukhzx83 Twitter Follow license

What are signals?

Signals allow you to communicate between decoupled parts of the game in Unity3d. The work with signals is very straightforward and can be shown in few steps:

 public struct SignalExampleDamage
    {
        public GameObject go;
        public int damage;
    }
public class ExampleClassReciever : MonoBehaviour, IReceive<SignalExampleDamage>
    {
    
        private void OnEnable()
        {
            // Add this object to ProcessingSignals.Default
            ProcessingSignals.Default.Add(this);
        }

        private void OnDisable()
        {
           // Remove this object from ProcessingSignals.Default. You don't want this object to receive signals anymore!
             ProcessingSignals.Default.Remove(this);  
        }
        // This method will work when the signal is received.
        public void HandleSignal(SignalExampleDamage arg)
        {
            Debug.Log(string.Format("{0} deals {1} damage!", arg.go, arg.damage));
        }
    }
public class ExampleClass : MonoBehaviour {
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // create new signal
            SignalExampleDamage signalExample;
            signalExample.damage = Random.Range(1, 10);
            signalExample.go = gameObject;
            // send signal to the processor
            ProcessingSignals.Default.Send(signalExample);
        }
    }
}

Other content