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

Создание экземпляра UXML из скриптов C#

Для создания UI из файла UXML:

  1. Загрузить файл в VisualTreeAsset,.
  2. Используйте либо:
    • Instantiate() для создания экземпляра без родителя, что создает новый TemplateContainer.
    • CloneTree(parent) для клонирования внутри родительского.

После создания экземпляра UXML вы можете получить конкретные элементы из визуального дерева с помощью UQuery.

В следующем примере создается окно пользовательского Редактора и загружается файл UXML в качестве его содержимого:

using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor.UIElements;

public class MyWindow : EditorWindow  {
    [MenuItem ("Window/My Window")]
    public static void  ShowWindow () {
        EditorWindow w = EditorWindow.GetWindow(typeof(MyWindow));

        VisualTreeAsset uiAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/MyWindow.uxml");
        VisualElement ui = uiAsset.Instantiate();

        w.rootVisualElement.Add(ui);
    }
}

Чтобы загрузить ассеты UXML для времени выполнения, настроит ссылки VisualTreeAsset в ваших сценариях MonoBehaviour и назначит ассеты UXML из Inspector. Дополнительные сведения и пример см. в Поддержка времени выполнения UI и Создание представления списка для времени выполнения UI.

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