https://stackoverflow.com/.../how-to-use-c-sharp-events...
Class containing events:
public class EventContainer : MonoBehaviour
{
public event Action<string> OnShow;
public event Action<string,float> OnHide;
public event Action<float> OnClose;
void Show()
{
Debug.Log("Time to fire OnShow event");
if(OnShow != null)
{
OnShow("This string will be received by listener as arg");
}
}
void Hide()
{
Debug.Log("Time to fire OnHide event");
if(OnHide != null)
{
OnHide ("This string will be received by listener as arg", Time.time);
}
}
void Close()
{
Debug.Log("Time to fire OnClose event");
if(OnClose!= null)
{
OnClose(Time.time); // passing float value.
}
}
}
Class which handles events of EventContainer class:
public class Listener : MonoBehaviour
{
public EventContainer containor; // may assign from inspector
void Awake()
{
containor.OnShow += Containor_OnShow;
containor.OnHide += Containor_OnHide;
containor.OnClose += Containor_OnClose;
}
void Containor_OnShow (string obj)
{
Debug.Log("Args from Show : " + obj);
}
void Containor_OnHide (string arg1, float arg2)
{
Debug.Log("Args from Hide : " + arg1);
Debug.Log("Container's Hide called at " + arg2);
}
void Containor_OnClose (float obj)
{
Debug.Log("Container Closed called at : " + obj);
}
}
No comments:
Post a Comment