跳转至

UXML

类似于网页HTML的存在

<?xml version="1.0" encoding="utf-8"?>    //可选声明
<UXML    //命名空间前缀定义+模式定义文件位置
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="UnityEngine.UIElements"  //命名空间
    xsi:noNamespaceSchemaLocation="../UIElementsSchema/UIElements.xsd"
    xsi:schemaLocation="UnityEngine.UIElements ../UIElementsSchema/UnityEngine.UIElements.xsd">


    <Label text="Select something to remove from your suitcase:"/>
    <Box>
        <Toggle name="boots" label="Boots" value="false" />
        <Toggle name="helmet" label="Helmet" value="false" />
        <Toggle name="cloak" label="Cloak of invisibility" value="false"/>
    </Box>
    <Box>
        <Button name="cancel" text="Cancel" />
        <Button name="ok" text="OK" />
    </Box>
</UXML>

xmlns 定义默认的命名空间

元素基类

元素名字与C#中的类名一致,且以VisualElement作为基类,提供如下公共属性。 + name:名字 + picking_mode: + tabindex:有两个值 + focusable: 元素是否可聚焦 + class:以空格分隔的标识符列表。使用类将视觉样式分配给元素。 + tooltip:悬停提示 + view-data-key:一个字符串,它定义了用于元素序列化的键

添加样式< Style >

在C# 中加载UXML

EditorWindow w = EditorWindow.GetWindow(typeof(MyWindow)); //编辑器窗口
VisualTreeAsset uiAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/MyWindow.uxml");
VisualElement ui = uiAsset.CloneTree();//形成树状结构
w.rootVisualElement.Add(ui); //将树结构加入window窗口可视化元素里面