【Unity】UIElements Expansions: Template

UIElements Expansions是Unity Editor的扩展资产。

UIElements Expansions: Template

UIElements Expansions: Template」系列强烈支持「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: Template」主要支持以下功能。

  • UIElements Expansions通用功能
    • 全局样式表
    • 检查器自动转换功能
    • 添加标签/功能
    • 附加类
  • 模板功能
  • 添加/删除控件

UIElements Expansions通用功能

请参阅以下页面。

模板功能

UIElements Expansions: Template」提供了使用已内置于Unity中的「engine:Template」标签更方便的功能。

您可以在特定标签下添加/删除使用「engine:Template」标签指定的UXML标签。

可以在特定标签下放置多个不同的模板以及相同的模板。

与「UIElements Expansions: Form」等一起,您可以在向用户添加/删除表单内容时提交信息。

添加/删除控件

UIElements Expansions: Template」还提供用于添加/删除模板的控制器。

您可以使用「BindableButton」从模板元素外部添加/删除元素。

也可以使用「RemoveButton」从模板内部删除元素。

利用方法

导入

请从Unity Asset Store购买。

购买后可从「我的资产」导入。

模板功能

模板的定义使用Unity的「engine:Template」标记。

<engine:Template path="Assets/Masamune/UIElements.Expansions.Template/Assets/Styles/Articles/Template1.uxml" name="Template1" />

在「path」属性中指定要用作模板的UXML文件的路径,并在「name」属性中指定模板名称。

如果要使用多个模板,请列出要使用的模板。

<engine:Template path="Assets/Masamune/UIElements.Expansions.Template/Assets/Styles/Articles/Template1.uxml" name="Template1" />
<engine:Template path="Assets/Masamune/UIElements.Expansions.Template/Assets/Styles/Articles/Template2.uxml" name="Template2" />
<engine:Template path="Assets/Masamune/UIElements.Expansions.Template/Assets/Styles/Articles/Template3.uxml" name="Template3" />

放置模板的容器使用UXML标记「engine:AppendableContainer」。

<engine:AppendableContainer template="Template1, Template1" name="container" />

为「name」属性指定容器的名称。您可以通过在此处指定名称来添加或删除元素。

您还可以通过指定「template」属性来指定要预先放置的模板。您可以通过“,”来指定多个。

添加/删除控件

添加元素

要向「engine:AppendableContainer」添加模板,请使用「BindableButton」。

<editor:BindableButton target="container" control="append" value="Template1" text="Add Template1" />

target」指定将元素添加到属性的「engine:AppendableContainer」。并将「control」属性指定为「append」。使用「value」属性指定要添加的最后一个模板的名称。

删除最后一个元素

如果要删除「engine:AppendableContainer」中的最后一个元素,请以相同的方式使用「BindableButton」。

<editor:BindableButton target="container" control="remove" text="Remove" />

指定「engine:AppendableContainer」以将元素添加到「target」属性,并将「remove」指定为「control」属性。

删除指定元素

您可以从元素内部删除自己的元素。

在这种情况下,使用「engine:AppendableItem」将要在模板中读取的UXML括起来,然后将「RemoveButton」放在其中。

// Template1.uxml
<engine:AppendableItem>
  Any contents
  <engine:RemoveButton text="Remove" />
</engine:AppendableItem>

在这种情况下,单击「RemoveButton」将删除其父级中的每个内容「engine:AppendableItem」。

总结

UIElements Expansions: Template」强烈支持「UIElements」,开始与Unity 2019.1。特别是,您可以轻松编写需要编写编辑器脚本的检查器的设计。

您还可以使用模板功能创建动态UI,用户可以添加或删除元素。

该设计引入了平面设计,并且它被安排成与Unity 2019.3相匹配的形状,这将立即变得很酷,因此您可以舒适地使用它。

如果您有兴趣,请务必考虑一下,因为它在资产商店出售!

发表评论

电子邮件地址不会被公开。