赞
踩
在上一章中,已经创建了一个最简单的窗口,从这一章开始就来简单介绍UXML的元素。
这里需要说明,新的编辑器拓展需要自学HTML和CSS,如果已有这方面的知识会很轻松。
本人也是第一次使用这些内容,如有不足,请大家指出。
这里的内容来自官方文档:https://docs.unity3d.com/Manual/UIE-ElementRef.html 可以自行观看
在上一章中我们就创建了VisualElement类型根节点,之后将子节点挂在该根节点上
以下均来自官方文档
1.均在UnityEngine.UIElements命名空间下
2.无符号表示允许子元素数量是任意数量的VisualElement
3.X字符表示不允许有子元素
4.不作特殊说明,均包含所有VisualElement属性
根据其内容绘制一个框
显示文本的元素
文本标签
显示图像
绘制IMGUI内容的元素
通过一个toggle控制展开或收起
.h
{
height: 150px;
background-image: resource("unity");
}
.pic
{
width :50px;
height:50px;
background-image: resource("unity");
}
<Box class ="h">
<Image class="pic"/>
<Foldout>
<Label text="Label"/>
<TextElement text ="TextElement"/>
</Foldout>
</Box>
由于我没有用过IMGUI,请大家自己尝试
通过对另一个UXML模板的引用,使用其Instance元素来实例化
一个模板的实例
模板容器
没有
首先定义一个需要的组件名为portrait
<engine:VisualElement class="portrait">
<engine:Label name="nameLabel" text="Name"/>
<engine:Label name="levelLabel" text="42"/>
</engine:VisualElement>
然后实例化该模板
<!--加载一个模板 需要路径(path) 和字符串标识符(name)-->
<Template path="Assets/Editor/portrait/portrait.uxml" name="Portrait"/>
<VisualElement name="players">
<!--实例化该模板 并命名-->
<Instance template="Portrait" name="player1"/>
<Instance template="Portrait" name="player2"/>
<Instance template="Portrait" name="player3"/>
</VisualElement>
模板:
实例化后
所有字段的抽象基类
标准按钮
按下时反复执行操作的按钮
目前还没有找到使用RepeatButton的方法
开关(复选框)
滚动条
滑动条
Int类型的滑动条
允许用户指定最小值和最大值的滑块
一个只能获取底层字符串值的字段Enum
如果之前只用了xmlns=“UnityEngine.UIElements”
那么在这里需要添加xmlns:editor=“UnityEditor.UIElements”
并在使用的时候需要editor:EnumField
目前还没有找到显示EnumField的方法
多选菜单
图层单选菜单
图层多选菜单
标签单选菜单
进度条
.btn { width :100px; height:30px; } .scr { height:200px; } .sliH { width:100px; } .sliV { height:100px; } .efi { width:100px; height:15px; }
<Button class="btn" text ="Button"/>
<RepeatButton class="btn" text ="RepeatButton" delay ="1000" interval="1000"/>
<Toggle text="toggle"/>
<Scroller class="scr" low-value="0" high-value="400" direction="Vertical" value="0"/>
<Slider class="sliH" low-value="0" high-value="200" direction="Horizontal" page-size="1"/>
<SliderInt class="sliV" low-value="0" high-value="200" direction="Vertical" page-size="1"/>
<MinMaxSlider class="sliH" low-value="0" high-value="200" min-value="0" max-value="200"/>
<editor:EnumField class="efi" type="EnumTest" value="0"/>
<editor:MaskField class="efi" choices="one,two,three,four" value="0"/>
<editor:LayerField class="efi"/>
<editor:LayerMaskField class="efi"/>
<editor:TagField class="efi"/>
<editor:ProgressBar class="efi" low-value="0" high-value="100" title="ProgressBar"/>
这里RepeatButton和EnumField还有问题,之后再解决
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。