前一篇:Unity官方DOTS示例学习笔记(二)
下一篇:Unity官方DOTS示例学习笔记(四)
示例的github地址
https://github.com/Unity-Technologies/EntityComponentSystemSamples
EntityComponentSystemSamples-master\ECSSamples\Assets\HelloCube\3. SubScene
1.加载子场景RotatingCube
适用于加载一个大场景,这个大场景由若干子场景组成。我更愿意称这个大场景为“根场景” 制作流程: (1)创建一个场景作为根场景,在这个示例里,根场景只有一个方向光和主相机。 (2)在Hierarchy 窗口鼠标右击空白处,出现的菜单中有一项是“New Sub Scene”,点击后就是创建一个子场景。子场景创建完后会发现子场景上带了一个Unity 内置脚本 SubScene.cs.
2.DOTS化的子场景
在这个示例里,子场景RotatingCube下只有一个prefab。用的是1. ForEach中自动生成component的方式,来实现旋转。 文档里说,对于这个子场景,保存时会DOTS化(native, binary format)。加载它时,能将它的数据最小化到RAM中。这个RAM应该是cpu的cache。我理解是重新组织了Scene的数据,让其适应DOTS。这些都是内置脚本SubScene.cs实现的。
3.RequestSceneLoaded
文档中提到,子场景可以运行时自动加载,也可以用RequestSceneLoaded延迟加载。但这个示例是自动加载的。想想实际项目需求应该是有延迟这个需求的,毕竟把一个大场景分成若干小的子场景就是为了分块加载,按需部分加载。看看后面的例子中是否有关于RequestSceneLoaded的示范。在这个例子上,是可以看到子场景inspector面板上是有一个“Auto Load Scene”选项的。如果不勾选这个,运行时,子场景是不会加载的。
本文深入探讨Unity官方DOTS示例中的子场景加载技术,介绍如何使用DOTS化子场景进行高效资源管理,包括加载流程、内存优化及自动生成组件实现旋转效果。
663

被折叠的 条评论
为什么被折叠?



