#c# #unity3d
#c# #unity3d
Вопрос:
Я очень растерян. Что я хочу сделать, так это нарисовать ящик свойств класса InputAction:
В пользовательском редакторе для класса.
Я считаю, что мне нужно будет использовать EditorGUILayout .PropertyField() для достижения этой цели. Однако мне нужно было бы преобразовать экземпляр класса InputAction в SerializedProperty, чтобы передать его через функцию. Я не знаю, как это преобразовать.
Я не слишком уверен, на правильном ли я пути; Ящики свойств сбивают меня с толку, а сканирование системного кода ввода сбивает меня с толку еще больше.
Итак, если бы я свел вопрос к одному обобщающему вопросу, это было бы: «Как мне нарисовать поле с пользовательским ящиком свойств в моем пользовательском инспекторе?»
Спасибо! Я ценю помощь.
Ответ №1:
Вы можете использовать PropertyField для рисования пользовательского свойства внутри пользовательского инспектора. Вот приличный пост в блоге, описывающий, как нарисовать поле с пользовательским ящиком свойств в пользовательском инспекторе.
Вы справедливо запутались в том, как преобразовать InputAction
в SerializedProperty
, поскольку вы не можете. InputAction — это простой класс C #, в то время как SerializedProperty может быть создан только из UnityEngine.Object
. Возможно, Unity рисует все это окно с помощью пользовательского редактора, а не по частям с использованием пользовательских свойств.
Возможно, вы могли бы расширить редактор, используемый для рисования этого окна, поскольку пакет InputSystem включает документацию по крайней мере по одному пользовательскому редактору: InputParameterEditor . Я еще не изучал это сам, удачи!