版本:Unity 6 (6000.0)
语言:英语
创建弹出窗口
创建具有两个属性的自定义控件

使用 Toggle 创建条件式 UI

此示例使用 Toggle 创建一个条件式 UI(用户界面) 允许用户与您的应用程序进行交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表

示例概述

此示例创建一个具有两个 Toggle 的自定义编辑器窗口。您可以使用 Toggle 执行以下操作

  • 显示或隐藏标签
  • 激活或停用按钮

您可以在此 GitHub 存储库 中找到此示例创建的完整文件。

创建示例

要创建此示例,请执行以下操作

  1. 使用任何模板创建一个 Unity 项目。

  2. 项目窗口显示您的 Assets 文件夹(项目选项卡)内容的窗口 更多信息
    参见 术语表
    中,创建一个名为 Editor 的文件夹。

  3. 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));
            }
        }
    }
    
  4. 要尝试此示例,请从菜单中选择 窗口 > ToggleExample

其他资源

创建弹出窗口
创建具有两个属性的自定义控件