此示例使用 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。