c# - 使用枚举在检查器中隐藏/显示变量

标签 c# enums unity3d hide inspector

我目前正在与一些美工、程序员、关卡设计师、艺术总监等合作进行一个更大的项目。 现在美工和关卡设计师不太热衷于代码,所以他们非常依赖检查器中显示的变量,我想让他们使用起来尽可能简单。

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

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

最佳答案

您需要创建一个 Custom Editor为此。

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

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

关于c# - 使用枚举在检查器中隐藏/显示变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26906536/

相关文章:

c++ - 为什么在 C++ 中声明枚举时使用 typedef?

c# - Silverlight 3/Prism - 将枚举值作为命令参数传递

c# - Unity - 移动对象直到点

c# - Unity2D : UnassignedReferenceException: Variable has not been assigned instantiate

c# - 如何在安装程序期间使用 SetupCopyOEMInf

c# - ASP.NET 从服务器获取文件列表

c# - 如何以编程方式使用 C# 获取、更新、切换或操作 Azure 门户中选定的 azure VM 的自动关闭参数?

c++ - 无法在 C++ 中定义++ 运算符,这里有什么问题?

unity3d - 复制 Unity 的神秘界面功能

c# - 使用 EF Core DB First Design 时向模型添加修改