В настоящее время я работаю над более крупным проектом с некоторыми художниками, программистами, дизайнером уровня, арт-директором и т.д. Теперь художники и разработчики уровней не так увлекаются кодом, поэтому они очень зависят от переменных, показанных в инспекторе, и я хочу сделайте как можно проще их использование.
Поэтому в инспекторе игрового объекта я хочу, чтобы некоторые переменные отображались в зависимости от значения публичной переменной перечисления. Есть ли способ сделать это с помощью макросов и [HideInInspector] или другого?
Кстати, мы используем С#.
Для этого вам потребуется создать для него Пользовательский редактор.
Например, создайте слайдер, только если флаг имеет значение 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