Unity2019 UIElement 笔记(十二)官方案例

官方案例来了

Unity2019.2的beta版本在不久前出来了,我原本没怎么注意,后来稍微看了下更新Nodes,发现了:
在Unity2019.2.0b中官方提供了案例!!!
在Unity2019.2.0b中官方提供了案例!!!
在Unity2019.2.0b中官方提供了案例!!!
重要的事情说三遍!
大家可以通过Unity Hub下载最新Unity2019.2.0b版本,然后通过Windows > UI > UIElements Samples打开。


首先要说明的是:这个案例清晰完整,你想要的大多数功能都能从这里找到,如下图所示:
Unity2019 UIElement 笔记(十二)官方案例_第1张图片
这里Styles主要补充了之前对于一些特殊状态的介绍,这些都是我们在项目中常用的功能,但是在之前的文档里并没有详细的介绍。
并且,官方还提供了C#+UXML+USS的组合代码,使得我们学习起来更加方便快捷,当然也可以利用这里的代码形成我们的项目。
Unity2019 UIElement 笔记(十二)官方案例_第2张图片
同时里面还包括了我之前介绍的Query查询和回调/事件系统,这里都有展示和应用,。

因此我推荐那些还不了解或者还不太会用的小伙伴赶紧下载学习起来!
因此我推荐那些还不了解或者还不太会用的小伙伴赶紧下载学习起来!
因此我推荐那些还不了解或者还不太会用的小伙伴赶紧下载学习起来!

下面是我之前内容的补充

补充:EnumField

对于我而言,这个案例解决了大部分对于事件的疑惑,最重要的就是这个Enum的使用,我这里只介绍一下重点部分:

VisualElement root = rootVisualElement;

//----------------------这里是用uxml---------------------------
var visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/Editor/Test.uxml");
VisualElement labelFromUXML = visualTree.CloneTree();
var uxmlField = labelFromUXML.Q<EnumField>("the-uxml-field");//搜寻EnumField
uxmlField.Init(MyEnum.One);//初始化,关键就在这里的初始化
root.Add(uxmlField);

//----------------------这里还是用uxml---------------------------
var visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/Editor/Test.uxml");
VisualElement labelFromUXML = visualTree.CloneTree();
labelFromUXML.Q<EnumField>("the-uxml-field").Init(MyEnum.One);//不克隆节点,直接初始化
root.Add(labelFromUXML);

//----------------------这里是用c#---------------------------
var csharpField = new EnumField("C# Field", MyEnum.One);//创建+赋予类型
csharpField.value = MyEnum.Two;
root.Add(csharpField);

如何直接从uxml中使用Enum的方式我目前还没找到。

你可能感兴趣的:(Unity笔记)