Unity3D :从 C# 脚本加载 UXML

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

从 C# 脚本加载 UXML

要根据 UXML 模板构建用户界面,必须先将模板加载到 中:VisualTreeAsset

var template = EditorGUIUtility.Load("path/to/file.uxml") as VisualTreeAsset;

或者采用更直接的方式:

var template = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("path/to/file.uxml");

然后可以构建表示的视觉树并将其附加到父元素:

template.CloneTree(parentElement, slots);

在上面的语句中,模板中的 元素被转换为 。 相反,其所有子项都附加到 指定的元素。<UXML>VisualElementparentElement

实例化模板后,即可使用 UQuery(Unity 的 JQuery/Linq 实现)从视觉元素树中检索特定元素。

例如,以下代码演示了如何创建新的 并加载 UXML 文件作为其内容:EditorWindow


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.CloneTree(null);

        w.rootVisualElement.Add(ui);
    }

    void OnGUI () {
        // 此处无需执行任何操作,除非还需要处理 IMGUI 相关事项。
    }
}

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :编写 UXML 模板 (mvrlink.com)

下一篇:Unity3D :USS 属性数据类型 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号