На трезвую голову я понял что мне не нравится: 1. Ты не знаешь, что такое интерфейс. Интерфейс - это когда ты предпологаешь несколько реализаций, со схожими чертами. И тебе нужно абстрагироваться от конкретных реализаций и работать с ними через один "интерфейс". Ты взял просто куски данных, обозвал интерфейсами и думаешь что это ок. Но множественное наследование, большой грех в ООП. Исключение только для интерфейсов. Но если что-то просто назвать интерфесом, интерфейсом оно от этого не станет. У тебя тут явные компоненты. 2. Правило которое должно быть написано большими буквами над входом в любую геймдев контору: "Если где-то наследование может быть заменено на композицию, оно должно быть заменено на композицию." Это актуально и для другой разработки, но в геймдеве больнее. Если у вас до сих пор не так, мне вас жаль. 3. Перепридумывание того, что есть в юнити и реализовано в юнити лучше. Зачэм? 4. Алгоритмы - названия прикольные(реализацию не смотрел). Но, если нет каких-то конкретных планов и целей, то это оверкилл. Для поиска пути можно просто взять юньковский навмеш. Если только целью не было самому попробовать написать а-стар. С BT та же фигня. Для подобной примитивной логики хватило бы и самопального FSM из трех методов. А так-то в юнити есть стейт машина. Но опять же, возможно, цель была в другом.
На трезвую голову я понял что мне не нравится:
1. Ты не знаешь, что такое интерфейс. Интерфейс - это когда ты предпологаешь несколько реализаций, со схожими чертами. И тебе нужно абстрагироваться от конкретных реализаций и работать с ними через один "интерфейс". Ты взял просто куски данных, обозвал интерфейсами и думаешь что это ок. Но множественное наследование, большой грех в ООП. Исключение только для интерфейсов. Но если что-то просто назвать интерфесом, интерфейсом оно от этого не станет. У тебя тут явные компоненты.
2. Правило которое должно быть написано большими буквами над входом в любую геймдев контору: "Если где-то наследование может быть заменено на композицию, оно должно быть заменено на композицию." Это актуально и для другой разработки, но в геймдеве больнее. Если у вас до сих пор не так, мне вас жаль.
3. Перепридумывание того, что есть в юнити и реализовано в юнити лучше. Зачэм?
4. Алгоритмы - названия прикольные(реализацию не смотрел). Но, если нет каких-то конкретных планов и целей, то это оверкилл. Для поиска пути можно просто взять юньковский навмеш. Если только целью не было самому попробовать написать а-стар. С BT та же фигня. Для подобной примитивной логики хватило бы и самопального FSM из трех методов. А так-то в юнити есть стейт машина. Но опять же, возможно, цель была в другом.
1. Это ISP
2. Наследование монобеха было требованием.
3-4. Из коробки в юнити нет рабочих решений.
(upd) вру, DOTS рабочий!