Никто не пробовал?
Использовать ScriptableObject экземпляры как handlers. То есть наоборот, чтобы они не хранили дату объекта. Максимум - настройки метода. То есть, например OutOfBoundsDeathHandlerSO : IDeathHandler
И там простой чек. Да, в метод надо закидывать Character, остальное можно узнать из всяких DI инъекций или синлтонов или eventbuses или иных фишег. Плюсы: можно накидывать алгоритмы в композиционную абстракцию в виде экземпляров в инспекторе. Более того, можно делать их несколько с разными настройками расчётов.
Я чёт такое не встречал, SO driven Райана Хиппла - совсем про другое, имхо, там путаница с srp. Я именно про SO-handler подход.
Вижу плюсы
1) Ультра удобный механизм композиции
2) можно формировать композицию с разными настройками расчётов
3) в SO можно закинуть другие SO. Использовать древовидный подход композиции.
Минусы
1) всегда закидывать данные в метод, чтобы их обрабатывать.
2) не получится закинуть ссылки из сцены в so. Но это не минус, было бы можно - нарушило бы идею.
Ремарки
1) Правильно задавать роли, нейминг, ну как всегда...