Unity 6.3
0 онлайн 101 гостей 3 в системе
Вход
UI системы Шаг 31 из 317

Настройка настраиваемого имени управления и видимости в UI Builder

Используйте атрибут UxmlElement, чтобы изменить отображение пользовательских элементов управления в UXML и в библиотеке UI Builder.

Настроить UXML имя тега

По умолчанию имя тега в UXML для вашего пользовательского элемента управления совпадает с именем класса C#. Использовать другое имя тега не рекомендуется, но при необходимости его можно изменить.

Чтобы настроить имя тега UXML, добавьте аргумент name к атрибуту UxmlElement.

Примечание: Имя метки должно быть уникальным, и вы должны ссылаться на пространство имен классов в UXML.

Например, если создана следующая пользовательская кнопка:

using UnityEngine.UIElements;

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

После этого ссылаться на свою кнопку в UXML можно по пользовательскому имени или по имени класса C#:

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

Настройка пути и видимости

По умолчанию пользовательские элементы управления отображаются в UI Builder библиотеки под путем, который соответствует их C# Вы можете использовать libraryPath аргумент для настройки пути к UxmlElement атрибут.

По умолчанию пространства имен, начинающиеся с Unity, UnityEngine, или UnityEditor резервируются, поэтому элементы в этих пространствах имен не появляются в библиотеке UI Builder. Вы можете использовать visible аргумент, чтобы переопределить это и сделать свои элементы управления видимыми.

В следующем примере показано, как сделать пользовательский контроллер видимым в библиотеке UI Builder под пользовательским путем и как скрыть другой пользовательский контроллер:

using UnityEngine.UIElements;

namespace Unity.MyGame
{
    // This element is visible in the UI Builder library under "My Game/Inventory".
    [UxmlElement(libraryPath = "My Game/Inventory", visibility = LibraryVisibility.Visible)]
    public partial class VisibleItem : VisualElement
    {
        [UxmlAttribute]
        public string description { get; set; }
    }
}

// This element is hidden from the UI Builder library.
// However, you can still use it in UXML or C# code.
[UxmlElement(visibility = LibraryVisibility.Hidden)]
public partial class HiddenItem : VisualElement
{
    [UxmlAttribute]
    public string description { get; set; }
}

Дополнительные ресурсы