Simple tu use and foolproof. It uses abstraction to make it almost invisible on your code and easy to reuse it.
- Add an enum memeber to
BusEvent
enum:
public enum BusEvent
{
PlayerLevelUp,
CloseMenu
// Add event name here...
}
- Subscribe:
Action levelUpAction = OnPlayerLevelUp;
EventBus.Subscribe(BusEvent.PlayerLevelUp, levelUpAction);
- Raise:
EventBus.Raise(BusEvent.PlayerLevelUp);
- Unsubscribe:
EventBus.Unsubscribe(BusEvent.PlayerLevelUp, levelUpAction);
- Create a class that inherids
EventBusArg
):
public class CustomEventArg : EventBusArg
{
}
- Set up your event arguments
public class CustomEventArg : EventBusArg
{
/* Parametters set up */
public int IntParametter { get; private set; }
public bool BooleanParametter { get; private set; }
/* Arguments set up */
public CustomEventArg(int parametterOne = 1, bool parametterTwo = false)
{
IntParametter = parametterOne;
BooleanParametter = parametterTwo;
}
}
- Subscribe:
Action<CustomEventArg> customEventAction = OnCustomEvent;
EventBus.Subscribe<CustomEventArg>(customEventAction);
- Raise:
EventBus.Raise(new CustomEventArg(5));
- Unsubscribe:
EventBus.Unsubscribe<CustomEventArg>(customEventAction);
- Any Unity version
- Any pipeline (Build-in, URP, HDRP, etc)
These scripts are a modifyed version of Freedom Coding codes.
⭐ Star if you like it
❤️️ Follow me for more