Unity3D :使用 C# 脚本构建 UI

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

使用 C# 脚本构建 UI

技术用户可以定义布局用户界面
直接在 C# 中脚本
.

可以在 USS 文件中定义控件的外观,也可以在 C# 脚本中修改控件的样式属性。

控件是交互式的,表示可以更改的值。例如,a 表示浮点值。可以创建 C# 脚本来更改控件的值、注册回调或应用数据绑定。FloatField

使用 C# 脚本向 UI 添加控件

若要在 UI 中使用控件,请将其添加到可视化树
.

下面的示例将一个 Button 控件添加到现有的可视化树中。

var newButton = new Button("Click me!");
rootVisualElement.Add(newButton);

将控件添加到 UI 层次结构时,布局引擎会自动处理大小调整和定位。您还可以覆盖可视元素的大小和位置。

更改控件值

若要访问或更改控件的值,请使用其属性。value

下面的示例创建一个切换控件和一个按钮控件。单击该按钮时,切换的值将翻转。

// Create a toggle and register callback
m_MyToggle = new Toggle("Test Toggle") { name = "My Toggle" };
rootVisualElement.Add(m_MyToggle);

// Create button to flip the toggle's value
Button button01 = new Button() { text = "Toggle" };
button01.clicked += () =>
{
    m_MyToggle.value = !m_MyToggle.value;
};
rootVisualElement.Add(button01);

有关特定控件的属性的详细信息,请参阅 UI 工具包内置控件参考。

注册回调

具有属性的控件在值更改时发送事件。您可以注册回调以接收此事件。value

下面的示例创建一个 Toggle 控件并注册回调:

// Create a toggle and register callback
m_MyToggle = new Toggle("Test Toggle") { name = "My Toggle" };
m_MyToggle.RegisterValueChangedCallback((evt) => { Debug.Log("Change Event received"); });
rootVisualElement.Add(m_MyToggle);

若要了解有关回调和事件的详细信息,请参阅事件处理。

应用数据绑定

可以将控件绑定到对象或序列化属性。例如,可以将 FloatField 控件绑定到属于 的公共浮点变量。当控件绑定到属性时,它会自动显示属性的值。修改控件时,属性的值将更新。MonoBehaviour

同样,当属性值通过代码更改时,UI 将显示更新的值。此双向连接在创建自定义时很有用检查员
窗户。

有关数据绑定的详细信息,请参阅序列化对象数据绑定。

并非所有控件都是可绑定的。有关内置控件的列表以及它们是否支持绑定,请参阅 UI 工具包内置控件参考。

其他资源

  • 使用 UXML 构建用户界面

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :使用 UQuery 查找视觉元素 (mvrlink.com)

下一篇:Unity3D :创建自定义控件 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号