Table of contents
UIElements Expansions是Unity Editor的扩展资产。
UIElements Expansions: Reorderable List
「UIElements Expansions: Reorderable List」系列强烈支持「UIElements」,开始与Unity 2019.1。
所谓UIElements
UIElements是从Unity 2019.1开始引入的替换当前Unity编辑器的GUI系统(IMGUI)的功能。
您可以创建Unity的GUI,就像使用HTML和CSS创建网页一样,组合Unity的HTML「UXML」和Unity的样式表「USS」。
当然,您可以像以前一样在编辑器脚本中为编辑器编写处理,并且有像jQuery这样的方法,因此您可以创建像HTML5这样的动态GUI。
在未来,计划不仅取代编辑器,还取代运行时GUI(当前uGUI),并且有望留给未来的Unity GUI。
只是潜力很高,但由于它刚刚推出,它还没有足够的功能来充分利用它。
「UIElements Expansions」是一种强烈支持其缺失部分的资产。
此「UIElements Expansions: Reorderable List」主要支持以下功能。
- UIElements Expansions通用功能
- 全局样式表
- 检查器自动转换功能
- 添加标签/功能
- 附加类
- Reorderable List
UIElements Expansions通用功能
请参阅以下页面。
Reorderable List

Reorderable List是一个有用的功能,也可用于IMGUI。您可以直观地操作序列化List<T>和数组,并且可以自由更改顺序。然而,即使在IMGUI时代,它的实现也很复杂,非常麻烦。
此外,由于UIElements甚至无法实现它,因此最终只能使用IMGUI。因此,UIElements USS无法应用且无法自由设置设计。
此外,IMGUI的可重新排序列表具有性能差的缺点,并且当元素数量变大时检查器的响应变得非常慢。
UIElements Expansions: Reorderable List 可在UIElements中使用新创建的Reorderable List。
通过USS调整详细的设计成为可能,因为IMGUI中的Reorderable List功能完好无损,并且成功地大大减轻了重量。
利用方法
导入

请从Unity Asset Store购买。
购买后可从「我的资产」导入。
Reorderable List
如果要在特定类中的List或检查器中查看数组Reorderable List,请在类的uxml文件中编写如下。
<editor:ReorderableList binding-path="要应用的List和数组变量名称" />
此时将显示自动应用样式的Reorderable List。

将皮肤应用于Reorderable List中的元素
常规样式表描述不允许您更改ReorderableList中元素的样式。
但是,由于内部类与其他元素一样可用,因此可以通过指定每个类来更改样式。
.unity-reorderable-list : Class that specifies the entire Reorderable List
.unity-reorderable-list__header : Header part
.unity-reorderable-list__icon : Icon in header
.unity-reorderable-list__label : Label in header
.unity-reorderable-list__add : Add button in header
.unity-reorderable-list__remove : Remove button in header
.unity-reorderable-list__content : Content part
.unity-reorderable-list__item : Each element in the content
.unity-reorderable-list__handle : Handle within each element
.unity-reorderable-list__single : The part excluding the handle when each element is a single field (primitive type such as string or int)
.unity-reorderable-list__footer : Footer part
具体内容请参考「Assets/Masamune/Modules/unity.style/Styles」文件夹中的「PersonalStyle」和「ProStyle」。
总结
「UIElements Expansions: Reorderable List」强烈支持「UIElements」,开始与Unity 2019.1。特别是,您可以轻松编写需要编写编辑器脚本的检查器的设计。
此外,使用「Reorderable List」可以更轻松地以List格式编辑数据。
该设计引入了平面设计,并且它被安排成与Unity 2019.3相匹配的形状,这将立即变得很酷,因此您可以舒适地使用它。
如果您有兴趣,请务必考虑一下,因为它在资产商店出售!