unity 获取scene整体的bound包围盒以及center
如下:多场景的情况也适合
参考: https://gamedev.stackexchange.com/questions/134675/unity-bounds-includes-the-center-of-the-scene
1 private List<Bounds> _worldBoundsList = new List<Bounds>(); 2 [Button("testBound")] 3 public void TestBounds() 4 { 5 _worldBoundsList.Clear(); 6 for (int i = 0; i < SceneManager.sceneCount; i++) 7 { 8 var scene = SceneManager.GetSceneAt(i); 9 GameObject[] gameObjects = scene.GetRootGameObjects(); 10 List<Renderer> renderers = new List<Renderer>(); 11 foreach (var o in gameObjects) 12 { 13 renderers.AddRange(o.GetComponentsInChildren<Renderer>()); 14 } 15 var worldBounds = renderers[0].bounds; 16 for (int j = 1; j < renderers.Count; ++j) 17 { 18 worldBounds.Encapsulate(renderers[j].bounds); 19 } 20 _worldBoundsList.Add(worldBounds); 21 } 22 } 23 private void OnDrawGizmos() 24 { 25 foreach (var bounds in _worldBoundsList) 26 { 27 Gizmos.color = new Color(0f, 1f, 0f, 0.1f); 28 Gizmos.DrawCube(bounds.center, bounds.size); 29 30 Gizmos.color = new Color(0f, 1f, 0f, 1f); 31 Gizmos.DrawWireCube(bounds.center, bounds.size); 32 } 33 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!