我目前正在与一些艺术家,程序员,关卡设计师,艺术总监等一起开展更大的项目。 现在艺术家和关卡设计师并不热衷于代码,因此他们非常依赖于检查器中显示的变量,我希望尽可能简单地使用它们。
因此,在游戏对象的检查器中,我希望显示一些变量取决于公共枚举变量的值。有没有办法使用宏和[HideInInspector]或其他?
我们正在使用C#。
答案 0 :(得分:4)
您需要为此创建Custom Editor。
例如,仅当标志为真时才创建滑块:
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