Как заполнить значения базы Enum по типуC#

Место общения программистов C#
Ответить
Anonymous
 Как заполнить значения базы Enum по типу

Сообщение Anonymous »

Я пытаюсь создать систему способностей персонажа в Unity.
В системе у меня есть различные классы и интерфейсы, все из которых присущи пустому интерфейсу «IAbilitySystem».< /p>
Эти классы имеют различные поля типов данных float и int, которые система использует для расчета того, как работает способность (т. е. урон, дальность ближнего боя, разброс, область действия, скорость снаряда и т. д.). В каждом из этих полей используется настраиваемый атрибут «Изменяемый».
У меня есть интерфейс «Статистика» для хранения и расчета чисел характеристик персонажей (т. е. HP персонажа, Сила, % недостающей маны). , уровень и т. д.)
У меня также есть класс «Модификатор», который может принимать собственное число с плавающей запятой «ModRatio» и некоторое число из класса «Stat» и увеличивать значения любых «изменяемых» значений. ' поля в любом классе, который реализует IAbilitySystem всякий раз, когда это значение вызывается чем-то другим.
Я хотел бы настроить эту систему так, чтобы класс «Модификатор» можно было использовать в общих чертах (т.е.: Modifier где T : IAbilitySystem).
Я думаю, что это позволит мне создать перечисление в «Модификаторе» с именем «Цель модификатора», которое может динамически заполнить себя всеми именами Полей с атрибутом «Модифицируемый», относящихся к типу «Т». Это позволило бы мне хранить все модификаторы для определенного типа «Способностей» в одном списке (

Код: Выделить всё

List mods
), а не иметь список для каждого поля, которое можно изменить, и следить за тем, чтобы каждый мод находился в правильном списке. Это также позволит мне продолжать масштабировать систему до любого количества IAbilitySystem, не создавая при этом слишком много спагетти.
Моя конечная цель — иметь возможность создавать разные способности как объекты, допускающие сценарии в единстве, и иметь возможность использовать инспектор для назначения базовых значений и с легкостью редактировать любые модификаторы. Мне нравится, как Unity может перечислить все возможные значения поля перечисления в раскрывающемся меню.
Я хотел бы знать, на правильном ли я пути к решению или есть ли это лучший способ реализации такой системы.
Кроме того, мне бы хотелось, чтобы «Модификатор» также мог иметь собственный список «Модификаторов» (т. е.: использование статистики для настроить ModRatio Модификатор).
Я создал базовую версию со всеми классами и интерфейсами.

Подробнее здесь: https://stackoverflow.com/questions/792 ... se-on-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»