У меня есть проект Unity с файлом конфигурации (для имен анимов)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class Anims{
public const string anim1= "NameOf anim1";
public const string anim2= "NameOf anim2";
public const string anim3= "NameOf anim3";
...
}
public enum animNames { anim1, anim2,anim3...}
, и в другом сценарии я хочу активировать анимацию, используя
public animNames name_Of_The_Anim_I_Want_To_Activate;
, моя проблема заключается в преобразованииname_Of_The_Anim_I_Want_To_Activate.ToString()
в фактическое имя анимации
, какой инструмент я могу использовать, чтобы превратить name_Of_The_Anim_I_Want_To_Activate = anim1
в "NameOf anim1";
Я хочу просмотреть перечисление, так как на каждом есть несколько кнопокзапуск другой анимации 1. Я не хочу использовать наследование или несколько сценариев 2. Я хочу попробовать более элегантный способ, чем оператор switch. вот почему я не могу перечислить, чтобы иметь возможность получить имя переменной.
Редактировать: В конце концов я выбросил идею «Статический конфигурационный файл» для монобезопасного менеджера, тогда я мог бы иметь (статические / постоянные или нет) публичныеstring anim1 = "name1";public string anim2 = "name2";
public enum CompAnim
{
Company1,
Company2,
}
и используйте
public string CompanyAnim(CompAnim comp)
{
string toRun =
this.GetType().GetField(comp.ToString()).GetValue(this).ToString();
return toRun;
}
, благодаря Камиле за элегантное решение, это именно то, что я искал.