此示例使用 Toggle 创建一个条件式 UI(用户界面) 允许用户与您的应用程序进行交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表。
此示例创建一个具有两个 Toggle 的自定义编辑器窗口。您可以使用 Toggle 执行以下操作
您可以在此 GitHub 存储库 中找到此示例创建的完整文件。
要创建此示例,请执行以下操作
使用任何模板创建一个 Unity 项目。
在 项目窗口显示您的 Assets 文件夹(项目选项卡)内容的窗口 更多信息
参见 术语表 中,创建一个名为 Editor 的文件夹。
在 Editor 文件夹中,创建一个名为 ToggleExample 的 C# 脚本文件,内容如下
using UnityEngine;
using UnityEditor;
using UnityEngine.UIElements;
namespace Samples.Editor.Controls
{
    public class ToggleExample : EditorWindow
    {
        private Toggle showToggle;
        private Toggle activateToggle;
        private Label labelToShow;
        private Button buttonToActivate;
        [MenuItem("Window/ToggleExample")]
        public static void OpenWindow()
        {
            var window = GetWindow<ToggleExample>("Controls: Toggle Sample");
            window.minSize = new Vector2(200, 170);
            EditorGUIUtility.PingObject(MonoScript.FromScriptableObject(window));
        }
        public void CreateGUI()
        {
            showToggle = new Toggle("Show label")
            {
                value = true
            };
            activateToggle = new Toggle("Active button")
            {
                value = true
            };
            labelToShow = new Label("This label is shown when the above toggle is set to On");
            buttonToActivate = new Button(() => Debug.Log("Button pressed!"))
            {
                text = "Active if above toggle is On"
            };
            rootVisualElement.Add(showToggle);
            rootVisualElement.Add(labelToShow);
            rootVisualElement.Add(activateToggle);
            rootVisualElement.Add(buttonToActivate);
            showToggle.RegisterValueChangedCallback(evt => labelToShow.visible = evt.newValue);
            activateToggle.RegisterValueChangedCallback(evt => buttonToActivate.SetEnabled(evt.newValue));
        }
    }
}
要尝试此示例,请从菜单中选择 窗口 > ToggleExample。