Version: Unity 6.0 (6000.0)
语言 : 中文
运行时数据绑定
在 C# 脚本中创建运行时绑定

运行时绑定入门

版本:6000.0+

想了解如何创建运行时数据绑定?请从使用此示例开始。此示例将创建数据源资产,并使用__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
Builder 将数据源绑定到 UI。

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

  1. 在 UI 控件的检视面板中定义数据源和数据源路径。
  2. 将 UI 控件的属性绑定到数据源资产的属性。
  3. 定义绑定模式以配置如何在数据源和 UI 之间复制更改。
  4. 定义更新触发器以配置在数据源和 UI 之间复制更改的时间。

示例概述

此示例将创建一个包含字符串属性的数据源资产,并将其绑定到 UI Builder 中的“标签 (Label) 控件”的”文本 (Text)”属性。更改数据源资产中的字符串属性时,标签的文本会更改。

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

可以在此 GitHub 代码仓库中找到此示例创建的完整文件。

先决条件

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

创建数据源资产

创建包含要绑定到的属性的数据源资产。在此示例中,您将创建名为 ExampleObjectScriptableObject 资产,其中包含 string 属性。

  1. 使用任何模板在 Unity 中创建项目。
  2. 在项目的 Assets 文件夹中,创建一个名为 ExampleObject.cs 的 C# 脚本,其中包含以下内容:
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) > 场景模板 (Scene Template)。此操作会在项目的 Assets 文件夹中创建资产。
  2. 将资产重命名为 ExampleObject.asset

创建 UI

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

  1. 在项目的 Assets 文件夹中,创建一个名为 ExampleObject.uxml 的 UXML 文件。
  2. 双击 ExampleObject.uxml 文件可在 UI Builder 中打开该文件。
  3. 在层级视图面板中,添加标签 (Label) 控件。

将标签绑定到数据源

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

  1. 标签 (Label) 的检视面板中,从绑定 (Bindings) > 数据源 (Data Source) > 对象 (Object) 列表中选择 ExampleObject

  2. 数据源路径 (Data Source Path) 列表中,选择 simpleLabel

    设置 VisualElement 绑定数据源

  3. 右键单击文本 (Text) 属性并选择添加绑定 (Add binding)

    添加绑定

  4. 绑定模式 (Binding Mode) 列表中选择至目标 (To Target)。这会在数据源发生更改时更新 UI。

  5. 高级设置 (Advanced Settings) > 更新触发器 (Update Trigger) 列表中,选择源更改时 (On Source Changed)(默认设置)。这会在数据源发生更改时更新 UI。

    设置绑定模式和更新触发器

  6. 选择添加绑定 (Add binding) 以应用更改。

  7. 保存并关闭 UI Builder。您的 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 Builder 预览模式下测试绑定

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

  1. 在项目的 Assets 文件夹中,选择 ExampleObject.asset
  2. 在检视面板窗口中的简单标签 (Simple Label) 字段中,输入随机文本。UI Builder 视口中的标签 (Label) 文本会更改您输入的文本。

其他资源

运行时数据绑定
在 C# 脚本中创建运行时绑定
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961