Unity官方DOTS示例学习笔记(三)HelloCube\3. SubScene

本文深入探讨Unity官方DOTS示例中的子场景加载技术,介绍如何使用DOTS化子场景进行高效资源管理,包括加载流程、内存优化及自动生成组件实现旋转效果。
前一篇: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”选项的。如果不勾选这个,运行时,子场景是不会加载的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值