На днях была похожая задача, решил с помощью Unidux, который использует UniRx.
Так же C# позволяет использовать статические методы, в не статических классах.
Соответсвенно вы делаете базовую реализацию Singleton, который возвращает ссылку на объект в сцене, а если его нет создает и сохраняет. Далее в компонентах просто используете метод по имена класса «Class.Instance.staticMethod()». И у вас появляется возможность использовать статические методы, без использования ссылок.
Так же C# позволяет использовать статические методы, в не статических классах.
Соответсвенно вы делаете базовую реализацию Singleton, который возвращает ссылку на объект в сцене, а если его нет создает и сохраняет. Далее в компонентах просто используете метод по имена класса «Class.Instance.staticMethod()». И у вас появляется возможность использовать статические методы, без использования ссылок.