2014-11-13 3 views
1

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

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

Мы используем C#, кстати.

ответ

4

Для этого вам необходимо создать Custom Editor.

Exemple, создать ползунок, только если флаг верно:

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

 Смежные вопросы

  • Нет связанных вопросов^_^