如何在 Unity 检查器中根据其他变量值隐藏变量

Sin*_*ci1 2 c# unity-game-engine inspector

我如何根据统一检查器中的其他变量值隐藏变量。基本上想象一下:如果我有一个名为“CanSprint”的布尔值和一个名为“SprintSpeed”的浮点数,那么我想这样做,以便当布尔值为真时,浮点数显示,但当布尔值为假时,浮点数隐藏。这只是为了更整洁一点。谢谢!

Aid*_*anH 5

您需要查看自定义编辑器脚本(https://docs.unity3d.com/Manual/editor-CustomEditors.html),使用自定义编辑器脚本您可以随时显示变量。这是使用链接信息的布局:

[CustomEditor(typeof(MyBehaviourClass))]
public class MyEditorClass : Editor
{
    public override void OnInspectorGUI()
    {
        // If we call base the default inspector will get drawn too.
        // Remove this line if you don't want that to happen.
        base.OnInspectorGUI();

        MyBehaviourClass myBehaviour = target as MyBehaviourClass;

        target.myBool = EditorGUILayout.Toggle("myBool", target.myBool);

        if (target.myBool)
        {
            target.someFloat = EditorGUILayout.FloatField ("Some Float:", target.someFloat);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请务必将此脚本粘贴到“Editor”文件夹中,将“MyBehaviourClass”更改为您的类类型,将“someFloat”更改为您的浮点数,将“myBool”更改为您的布尔变量。