Я делаю игру и использую множество событий, чтобы заставить один класс взаимодействовать с другими, но утомительно обрабатывать подписку и отмену подписки на методы OnEnable и OnDisable каждый раз, когда новый класс будет слушать определенное событие. Поэтому я подумал о создании абстрактных классов для конкретных событий, и тогда класс, который хочет прослушивать событие, должен будет только наследовать от абстрактного класса, чтобы сэкономить время на повторной настройке метода OnEnable и OnDisable.
Абстрактный класс будет таким:
Предположим, у нас есть событие OnGameStart. Я бы создал абстрактный класс только для того, чтобы прослушивать это событие.
Код: Выделить всё
public abstact class OnGameStartListener : Monobehaviour
{
private void OnEnable() => Controller.OnGameStart += OnGameStart;
private void OnDisable() => Controller.OnGameStart -= OnGameStart;
public abstract void OnGameStart();
}
My question is: Is there a better way to do this? Or is this too much expensive? Because if a class Inherits from more than one abstract class to listen to events, we'd have more OnEnable and OnDisable methods being called.
Thanks for the time reading and answering

I havent tried this yet, because Im not sure if its worth it. Not sure how I'd analyze the efficiency too.
Источник: https://stackoverflow.com/questions/781 ... -listeners