Unity ECS+Jobs System笔记 案例解析3(十二)

本文详细解析Unity ECS的SubScene场景工作流,介绍如何创建和编辑SubScene,以及SpawnFromMonoBehaviour和SpawnFromEntity案例。SubScene提供高效场景加载方式,适合流式传输。此外,探讨了Prefab生成Entity的方法,利用EntityCommandBuffer处理主线程与工作线程的同步,确保实体操作的安全性。
摘要由CSDN通过智能技术生成

本章节为大家解析ECS案例,资源来自,大家自行获取:
https://github.com/Unity-Technologies/EntityComponentSystemSamples

5、SubScene——新的场景工作流

在这里插入图片描述
这个案例演示了SubScene的工作流,SubScene提供了一个更加有效的在Unity内编辑和加载场景的方式
这个案例使用了HelloCube中IJobForEach的Components和Systems,这个场景包括了一对正在旋转的Cube,而它们是在开始之后自动从一个SubScene中加载的

  • 当你保存一个场景,Unity会将SubScene转化成一个原生的二进制格式,这个格式对内存而言是随时可以调度的,同时在RAM中也可以最小的数据更改量被加载和传输,该格式非常适合流式传输大量实体。
  • 你可以在开始之后自动加载一个Sub Scene;你也可以延迟加载知道你从你的代码中流式传输SubScene(使用RequestSceneLoaded组件)
  • 在默认情况下,即使在编辑器模式下,SubScene也是通过Entity二进制文件被加载
  • 当你选择一个SubScene然后在Unity的Inspector点击Edit按钮对该场景进行编辑,在编辑的时候,你可以在Scene界面中看到Entities的层级结构,同时也能像之前一样对其进行编辑,一个"实时链接"转换管线可以应用任何你对Scene的改变
  • 仅编辑场景的一部分并且仍然加载其他子场景的实体的功能,创建了一个可用于编辑大量场景的可扩展的工作流程
创建方式

在Unity的Hierarchy面板创建一个GameObject,添加SubScene组件,在SceneAsset中选择需要加载的场景,然后点击Rebuild Entity Cache(如果有警告就点击Clear),通过Edit按钮可以进入便编辑模式,按Close退出,使用Save保存场景,使用Load和Unload选择是否加载资源

6、SpawnFromMonoBehaviour

 	public GameObject Prefab;
    public int CountX = 100;
    public int CountY = 100;

    void Start()
    {
   
        Entity prefab = GameObjectConversionUtility.ConvertGameObjectHierarchy(Prefab, World.Active);
        EntityManager entityManager = World.Active.EntityManager;

        for (var x = 0; x < CountX; x++)
        {
   
            for (var y = 0; y < CountY; y++)
            {
   
                var instance = entityManager.Instantiate(prefab);

                float3 position = transform.<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值