Я много искал, но нигде не нашел четкого ответа для списка строк -> enum . У меня есть список строк, которые я хочу превратить в enum , из которого я могу выбрать в Unity инспектор.
В частности, я пытаюсь составьте список enum всех текущих настроек кнопок ввода из настроек проекта. У меня есть все имена, просто не знаю, как сделать это enum или похожим. Идеально отображается как переменная KeyCode в инспекторе.
В настоящее время пытается (и не удается) с:
foreach (string s in names)
{
if (Enum.TryParse(s, true, out list))
Debug.Log(list);
else Debug.Log("FAILED");
}
"names" = static List<string> names;
"list" = static MyList list;
"MyList" = enum MyList { Null }
Возвращает "FAILED" 58 раз только для 29 входной оси.
Я хочу простое решение, поэтому, если это невозможно или относительно просто, я Выработаю что-то еще.
Код для получения списка "имен" строк (Работает правильно):
var inputManager = AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/InputManager.asset")[0];
SerializedObject obj = new SerializedObject(inputManager);
SerializedProperty axisArray = obj.FindProperty("m_Axes");
if (axisArray.arraySize == 0)
Debug.Log("No Axes");
for (int i = 0; i < axisArray.arraySize; ++i)
{
var axis = axisArray.GetArrayElementAtIndex(i);
var name = axis.FindPropertyRelative("m_Name").stringValue;
names.Add(name);
}