【Unity】Entities 1.0 学习(二):调试工具
创始人
2024-03-24 13:49:26
0

        在 Entites 1.0 ,Unity修改了之前的调试面板,以及在场景下构建 Ecs World 的流程,较之前的版本差别还是蛮大的。

        之前的学习大多集中在代码和语法,很多是对之前成熟的代码做升级改造,所以没有用到新的调试工具。但是最近在看 Unity 的新的 GameObject Convert 方法(Baking),就必须要用到新的调试和构建工具了。

        这里做个简单介绍吧,先介绍一些基础的,以后有用到新的再补充。

1、关于URP

        道理上来讲,是不是URP工程,ECS都是可以直接跑的。但是在官方的 ECS 示例流程中,建议的是使用 URP,但是没有说为什么。

        我自己测试下来,URP可以直接安装 com.unity.entities.graphics 这个包(就是以前的Hybird V2),但是标准工程中安装不了。

 可以看到URP工程中能正常安装com.unity.entities.graphics

        但是其他的非URP工程是不能安装上这个包的,也许这个包只能在URP上使用吧。显然,安不上这个包,自动转换成Entity的GameObject就会丢失渲染属性,不过不太影响这一章之后要讲的东西。

2、在编辑器下构建 ECS World

        之前的流程是在 GameObject 挂上一个 Convert To Entity 的组件,就能转换成 Entity。不过新的流程修改了,这个组件被移除了,新的流程如下:

        在 Hierarchy 窗口下右键,选择 New Subscene > Empty Scene,创建一个新的 SubScene。

        现在只要在这个SubScene里面的东西,都会自动转换成实体(Entity)。我们在 SubScene 里面新建2个Cube,并给上2个材质球,一个红色一个黄色,如下图所示:

         这样构建就算能完成了, 直接点Play,Unity就会自动将这两个Cube转换成实体。


        建议在窗口 Edit > Preferences > Entities > Baking > Scene View Mode 中选择 RuntimeData,这样不用 Play 也能看到运行时的情况了。

        实际上,如果在 URP 工程里,你会感觉没啥区别。但是如果在非URP工程里,将这两个Cube从主Scene拖到SubScene的一瞬间,就消失(转换成了实体,但是没有渲染组件)了。


        

3、查看Entity的属性

        之前这一块是在 EntityDebugger 里面的,相信大家已经发现了,在Entities 1.0 中,已经没有这个 EntityDebugger 了。

        查看 Entity 的方法如下:

        直接 Play,然后在 Hierarchy 中选择对应的 Cube(已经转成实体):

         看到右上角那个小圆圈没有,点两下,给他点成黄色圆圈,里面你就能看到Entity的属性了。

         不得不说,新的数据概览窗口比起以前的界面看起来好多了,这个改动我还是很喜欢的。

         可以看到这里加了很多Data,除了LTW相关的就是渲染相关的,东西还是非常多的。不过这里我们都完全不需要管它,只要知道这里能看各个Data的数据就OK了。

4、Entities Hierarchy

        那么肯定就有同学会问了,如果是我自己创建的Entity,该怎么看到呢?

        这里我写了一个简单地创建Entity的例子:

public void CreateEntity()
{var manager = World.DefaultGameObjectInjectionWorld.EntityManager;var entity = manager.CreateEntity();manager.AddComponentData(entity, new ASampleData_ID(999));
}

        这时候就要用到 Entities Hierarchy 了:Window > Entities > Hierarchy ,点击之后能看到多了一个层级窗口:

         看起来和正常的 Hierarchy 是一样的。我们点击 Play,可以看到多了很多新东西,我们自己创建的 Entity 也能看到了:

         你可以发现 Entities Hierarchy 右上角也有个小圆圈,一共有三种形态:

  • 空心:不显示 Entities 相关(约等于普通Hierarchy )

  • 圆点:实体和GameObject都显示;

  • 实心圆:只显示 Entities 实体。

        圆点和实心圆的模式只在SubScene里面能看出差别,你可以看到在SubScene里的单位是以GameObject的形式显示还是以Entity的形式显示。

5、其他的几个调试窗口

         通过上一个步骤,你也看到了,在 Window > Entities 还有几个别的窗口:

         

        这里就不做详细介绍了,就简单地说下这几个窗口的功能:

  • Hierarchy : 显示当前场景中的实体信息

  • Components :显示所有 ComponentData 的结构体信息。

  • Systems:显示当前运行的所有 System 信息,能看到其使用了哪些实体。

  • Archetypes:显示原型信息。

  • Journaling:日志记录,可以显示用了哪些方法,有哪些实体、ComponentData之类,应该是可以用来分析性能,但我还没有仔细研究。

        目前这些都还没有用到过,等后面用到了再继续补充。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...