版本: Unity 6 (6000.0)
语言English
  • C#

UxmlElementAttribute

UnityEngine.UIElements 中的类

/

实现于:UnityEngine.UIElementsModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

声明自定义控件。

要创建自定义控件,您必须将 UxmlElement 属性添加到自定义控件类定义中。您必须将自定义控件类声明为部分类,并继承自 VisualElement 或其派生类之一。当元素用 UxmlElement 属性标记时,会在部分类中生成相应的 UxmlSerializedData 类。此数据类包含每个用 UxmlAttributeAttribute 属性标记的字段或属性的 SerializeField。此序列化数据允许从 UXML 序列化元素,并支持在 UI Builder 的 Inspector 窗口的 Attributes 字段中进行编辑。默认情况下,自定义控件会显示在 UI Builder 的 Library 选项卡中。要将其从 Library 选项卡中隐藏,请提供 HideInInspector 属性。

以下示例创建了一个具有多个属性的自定义控件

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;

[UxmlElement] public partial class ExampleVisualElement : VisualElement { [UxmlAttribute] public string myStringValue { get; set; }

[UxmlAttribute] public int myIntValue { get; set; }

[UxmlAttribute] public float myFloatValue { get; set; }

[UxmlAttribute] public List<int> myListOfInts { get; set; }

[UxmlAttribute, UxmlTypeReference(typeof(VisualElement))] public Type myType { get; set; }

[UxmlAttribute] public Texture2D myTexture { get; set; }

[UxmlAttribute] public Color myColor { get; set; } }

以下 UXML 文档使用了自定义控件

<ui:UXML xmlns:ui="UnityEngine.UIElements">
    <ExampleElement my-string-value="Hello World" my-int-value="123" />
    <ExampleElement my-float-value="3.14" my-list-of-ints="1,2,3" />
    <ExampleElement my-string-value="Hello World" my-int-value="123" />
    <ExampleElement my-texture="project://database/Assets/MyTexture.png" />
    <ExampleElement my-color="#FF0000FF" />
    <ExampleElement my-type="UnityEngine.UIElements.Button, UnityEngine.UIElementsModule" />
</ui:UXML>

<para>创建自定义控件时,在 UXML 和 UI Builder 中使用的默认名称是元素类型名称(C# 类名)。但是,您可以自定义名称以方便引用元素。</para> <para>注意:您仍然需要在 UXML 中引用类的命名空间。</para> <para>要为元素创建自定义名称,请为 name 属性提供一个值。例如,如果您创建了以下自定义按钮:</para>

using UnityEngine.UIElements;

[UxmlElement("MyButton")] public partial class CustomButtonElement : Button { }

然后,您可以使用自定义名称或其类型在 UXML 中引用自定义按钮

<ui:UXML xmlns:ui="UnityEngine.UIElements">
    <MyButton />
    <CustomButtonElement />
</ui:UXML>

属性

name为元素提供自定义名称。

构造函数

UxmlElementAttribute将 VisualElement 的类型公开给 UXML 和 UI Builder