Version: 1.7
语言 : 中文
运行时数据绑定
在C#脚本中创建一个运行时绑定

运行时绑定入门

版本 :6000.0+

想要了解如何创建运行时数据绑定?使用此示例开始。此示例创建一个数据源资产,并使用用户界面Builder 将数据源绑定到 UI。

要在 UI Builder 中设置运行时绑定,请执行以下作:

  1. 在UI控件的检查器面板中定义数据源和数据源路径。

  2. 将UI控件的属性绑定到数据源资产的属性。

  3. 定义绑定模式配置如何在数据源和UI之间复制更改。

  4. 定义更新触发器在数据源和UI之间复制更改时进行配置。

示例概述

此示例创建一个包含 string 属性的数据源资产,并将其绑定到 UI Builder 中 Label 控件的 Text 属性。当您更改数据源资产中的 string 属性时,标签的文本会发生变化。

运行时绑定示例
运行时绑定示例

您可以找到此示例在此创建的已完成的文件GitHub存储库

先决条件

本指南适用于熟悉 Unity 编辑器、UI Toolkit 和 C# 脚本的开发人员。在开始之前,请熟悉以下内容:

创建数据源资产

创建一个数据源资产,其中包含您要绑定到的属性。在此示例中,您创建一个ScriptableObject资产命名ExampleObject其中包含一个string财产。

  1. 在 Unity 中使用任何模板创建项目。
  2. 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!";
}

创建示例对象资产

  1. 从菜单中选择 Assets > Create > Example Object 。这在Assets您项目的文件夹。
  2. 将资产重命名为ExampleObject.asset

创建 UI

创建绑定到您在上一步中创建的数据源资产的 UI。在此示例中,您将创建一个包含 Label 的 UXML 文件。

  1. Assets项目的文件夹,创建一个名为uxml文件ExampleObject.uxml
  2. 双击ExampleObject.uxml文件以在 UI 构建器中打开。
  3. 在 Hierarchy (层次结构) 面板中,添加一个标签 控件。

将 Label 绑定到数据源

将 UI 绑定到您在上一步中创建的数据源资产。

  1. 在检查员面板中 Label ** ,来自 Bindings** > Data Source > Object 列表,选择 exampleObject

  2. Data Source Path 列表,选择 SimpleLabel

Set the VisualElement binding datasource

  1. 右键单击 Text 属性并选择 Add binding

Addbinding

  1. 来自绑定模式 列表,选择目标 。当数据源更改时,这将更新UI。

  2. 来自 Advanced Settings > Update Trigger 列表,选择 On Source Changed ,这是默认设置。当数据源更改时,这将更新UI。

Set the binding mode and updatetrigger

  1. 选择 Add binding 以应用更改。

  2. 保存并关闭 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>

在 UI 构建器预览模式下测试绑定

更新数据源资产中 LabelText 的标签文本,并检查在 UI 中复制的更改。

  1. Assets项目的文件夹,选择ExampleObject.asset
  2. 在检查员窗口中,在 Simple Label 字段,输入随机文本。这Label 文本视窗,将更改为您输入的文本。

其他资源

运行时数据绑定
在C#脚本中创建一个运行时绑定