版本 :6000.0+
想要了解如何创建运行时数据绑定?使用此示例开始。此示例创建一个数据源资产,并使用用户界面Builder 将数据源绑定到 UI。
要在 UI Builder 中设置运行时绑定,请执行以下作:
此示例创建一个包含 string 属性的数据源资产,并将其绑定到 UI Builder 中 Label 控件的 Text 属性。当您更改数据源资产中的 string 属性时,标签的文本会发生变化。
您可以找到此示例在此创建的已完成的文件GitHub存储库。
本指南适用于熟悉 Unity 编辑器、UI Toolkit 和 C# 脚本的开发人员。在开始之前,请熟悉以下内容:
创建一个数据源资产,其中包含您要绑定到的属性。在此示例中,您创建一个ScriptableObject
资产命名ExampleObject
其中包含一个string
财产。
Assets
项目的文件夹,创建一个名为c#脚本ExampleObject.cs
具有以下内容:using Unity.Properties;
using UnityEngine;
using UnityEngine.UIElements;
#if UNITY_EDITOR
using UnityEditor;
#endif
[CreateAssetMenu]
public class ExampleObject : ScriptableObject
{
[Header("Simple binding")]
public string simpleLabel = "Hello World!";
}
Assets
您项目的文件夹。ExampleObject.asset
。创建绑定到您在上一步中创建的数据源资产的 UI。在此示例中,您将创建一个包含 Label 的 UXML 文件。
Assets
项目的文件夹,创建一个名为uxml文件ExampleObject.uxml
。ExampleObject.uxml
文件以在 UI 构建器中打开。将 UI 绑定到您在上一步中创建的数据源资产。
在检查员面板中 Label ** ,来自 Bindings** > Data Source > Object 列表,选择 exampleObject 。
在 Data Source Path 列表,选择 SimpleLabel 。
来自绑定模式 列表,选择目标 。当数据源更改时,这将更新UI。
来自 Advanced Settings > Update Trigger 列表,选择 On Source Changed ,这是默认设置。当数据源更改时,这将更新UI。
选择 Add binding 以应用更改。
保存并关闭 UI 构建器。你的ExampleObject.uxml
文件如下:
<engine:UXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:engine="UnityEngine.UIElements"
xmlns:editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
<engine:Label text="Label" data-source="ExampleObject.asset" data-source-path="simpleLabel">
<Bindings>
<engine:DataBinding property="text" binding-mode="ToTarget" />
</Bindings>
</engine:Label>
</engine:UXML>
更新数据源资产中 LabelText 的标签文本,并检查在 UI 中复制的更改。
Assets
项目的文件夹,选择ExampleObject.asset
。