找回密码
 立即注册
楼主: Baste

Unity手游开发札记——2.5D大世界动态加载实战

[复制链接]
发表于 2022-11-11 12:44 | 显示全部楼层
请问答主最后再普通的设备上有没有加载时的卡顿?如何解决的?我们把场景分的粒度很低,加载的一瞬间还是会有一些掉帧的现象
发表于 2022-11-11 12:46 | 显示全部楼层
还是会有一点CPU的峰值,不过体验上不明显,用prefab,异步加载,加上缓存,整体还好。另外我们是因为场景组件相对简单,所以chunk比较大,加载频率比较低,线上玩家是没有反馈过体验到顿卡的问题的。
发表于 2022-11-11 12:47 | 显示全部楼层
不好意思,刚刚看到。。。我们是用的一个大的navmesh来解决的。。。
发表于 2022-11-11 12:52 | 显示全部楼层
请问下每个chunk场景中的节点生成prefab的时候, 该prefab的光照信息丢失你是怎么解决的. 我是在打包的时候open每个chunk场景把 光照贴图 及 prefab 的光照信息 记录到一个二进制文件中, 运行时读出来调整光照图索引. 所以chunk中的prefab的光照图信息不能丢失.
发表于 2022-11-11 12:57 | 显示全部楼层
我们是在render所在的go上添加一个Component做记录,文章里有详细说明。hook下烘焙函数,在烘焙的时候自动从render身上更新这套记录的参数,然后运行时awake函数中赋值回给render。
发表于 2022-11-11 13:04 | 显示全部楼层
我也试过这个方法, 貌似chunk管理做缓存后有点问题, 应该是我的逻辑有点问题, 不过我现在的解决方案是创建prefab后就断开场景中的节点与prefab的链接, 这样就没问题, 场景中还是可以apply到prefab.
PrefabUtility.CreatePrefab(prefabPath, chunkNode, ReplacePrefabOptions.ConnectToPrefab); // 创建prefab
PrefabUtility.DisconnectPrefabInstance(chunkNode); // 断开链接
发表于 2022-11-11 13:13 | 显示全部楼层
不是特别懂断开场景的节点和prefab的链接的作用。是说每个chunk的那个prefab吗?
发表于 2022-11-11 13:20 | 显示全部楼层
是的, 因为创建prefab后, prefab文件的光照信息已经丢失了, 不断开链接的话, 下次打开chunk场景会直接使用prefab. 断开后参数是保存在场景文件(.unity)中, 所以下次打开就不会有问题.
发表于 2022-11-11 13:23 | 显示全部楼层
不同navmesh间可以用OffMeshLink链接,然后分为不同场景导出,运行时用LoadSceneAsync(Additive模式)加载,OffMeshLink检测到会自动连接的,当然了,也可以导出跳跃点的坐标然后运行时创建OffMeshLink
发表于 2022-11-11 13:23 | 显示全部楼层
是不是不是mesh切割,只是拼接到一个chunk里面。再加载
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 20:28 , Processed in 0.096713 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表