unity editor 显示场景box轮廓
参考:
https://answers.unity.com/questions/8705/how-to-determine-bounding-box-of-scene.html
使用bonding显示场景内场景的Box
#region Test private List<Bounds> _testWorldBoundsList = new List<Bounds>(); private Vector3[,] _testGridPosArr = new Vector3[ScenePosManager.gridCount, ScenePosManager.gridCount]; [Button("TestSceneBounds")] public void TestSceneBounds() { _testWorldBoundsList.Clear(); for (int i = 0; i < SceneManager.sceneCount; i++) { var scene = SceneManager.GetSceneAt(i); GameObject[] gameObjects = scene.GetRootGameObjects(); List<Renderer> renderers = new List<Renderer>(); foreach (var o in gameObjects) { renderers.AddRange(o.GetComponentsInChildren<Renderer>()); } var worldBounds = renderers[0].bounds; for (int j = 1; j < renderers.Count; ++j) { worldBounds.Encapsulate(renderers[j].bounds); } _testWorldBoundsList.Add(worldBounds); } for (int i = 0; i < ScenePosManager.gridCount; i++) { for (int j = 0; j < ScenePosManager.gridCount; j++) { _testGridPosArr[i, j] = new Vector3(i * ScenePosManager.itemSize + ScenePosManager.halfGridSize, 0, j * ScenePosManager.itemSize + ScenePosManager.halfGridSize); } } } private void OnDrawGizmos() { foreach (var bounds in _testWorldBoundsList) { Gizmos.color = new Color(0f, 1f, 0f, 0.1f); Gizmos.DrawCube(bounds.center, bounds.size); Gizmos.color = new Color(0f, 1f, 0f, 1f); Gizmos.DrawWireCube(bounds.center, bounds.size); } if (_testWorldBoundsList.Count > 0) { for (int i = 0; i < ScenePosManager.gridCount - 1; i++) { for (int j = 0; j < ScenePosManager.gridCount - 1; j++) { Gizmos.color = new Color(1.0f, 1f, 1f, 1f); Gizmos.DrawLine(_testGridPosArr[i, j], _testGridPosArr[i + 1, j]); Gizmos.DrawLine(_testGridPosArr[i, j], _testGridPosArr[i, j + 1]); if (LevelController.ScenePosMgr.flags[i, j]) { Gizmos.color = new Color(0.0f, 1f, 1f, 0.5f); Gizmos.DrawCube(_testGridPosArr[i, j], new Vector3(50, 50, 50)); } } } foreach (var instanceTestCenterPos in LevelController.ScenePosMgr.testCenterPos) { Gizmos.color = new Color(1.0f, 0f, 0f, 0.5f); Gizmos.DrawSphere(instanceTestCenterPos, 60); } } } #endregion
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!