1

我目前正在与一些艺术家、程序员、关卡设计师、艺术总监等一起做一个更大的项目。现在艺术家和关卡设计师对代码并不那么热衷,所以他们非常依赖于检查器中显示的变量,我想使他们尽可能容易使用。

因此,在游戏对象的检查器中,我希望根据公共枚举变量的值显示一些变量。有没有办法使用宏和 [HideInInspector] 或其他方法来做到这一点?

顺便说一句,我们正在使用 C#。

4

1 回答 1

5

您将需要为此创建一个自定义编辑器

例如,仅当标志为真时才创建滑块:

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

于 2014-11-13T11:05:36.457 回答