Скрыть / показать переменные в инспекторе, используя перечисление

1

В настоящее время я работаю над более крупным проектом с некоторыми художниками, программистами, дизайнером уровня, арт-директором и т.д. Теперь художники и разработчики уровней не так увлекаются кодом, поэтому они очень зависят от переменных, показанных в инспекторе, и я хочу сделайте как можно проще их использование.

Поэтому в инспекторе игрового объекта я хочу, чтобы некоторые переменные отображались в зависимости от значения публичной переменной перечисления. Есть ли способ сделать это с помощью макросов и [HideInInspector] или другого?

Кстати, мы используем С#.

Теги:
unity3d
enums
hide
inspector

1 ответ

4
Лучший ответ

Для этого вам потребуется создать для него Пользовательский редактор.

Например, создайте слайдер, только если флаг имеет значение true:

public class MyScript : MonoBehaviour
{
   public bool flag;
   public int i = 1;
}

[CustomEditor(typeof(MyScript))]
public class MyScriptEditor : Editor
{
   void OnInspectorGUI()
   {
       var myScript = target as MyScript;

       myScript.flag = GUILayout.Toggle(myScript.flag, "Flag");

       if(myScript.flag)
           myScript.i = EditorGUILayout.IntSlider("I field:", myScript.i , 1 , 100);

   }  
}

Код, взятый из одного вопроса:
http://answers.unity3d.com/questions/192895/hideshow-properties-dynamically-in-inspector.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню