Создание экземпляра UXML из скриптов C#
Для создания UI из файла UXML:
- Загрузить файл в
VisualTreeAsset,. - Используйте либо:
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.