行业知识
Unity编辑器下如何获取物体(GameObject)的中心位置
2026-10-22 03:52:43
来源:互联网转载
���意仅能在编辑器下才能使用该方法
()实现方式依靠UnityEditor.Tools提供的参数,具体实现如下:
- 获取单个物体的中心坐标
public static Vector3 GetGameObjectCenter(GameObject gameObject){ // 选中物体 Selection.activeObject = gameObject; // 记录当前Scene窗口的Tool Handle状态 var curPivotMode = Tools.pivotMode; // 将Handle转成Center模式 Tools.pivotMode = PivotMode.Center; // 获取Scene的View SceneView view = SceneView.lastActiveSceneView; // 聚焦并重绘场景 view.Focus(); view.Repaint(); // 保存当前handle的坐标,即为center坐标 var center = Tools.handlePosition; // 复原状态 Selection.objects = null; Tools.pivotMode = curPivotMode; return center;}- 获取一组物体的中心坐标
public static Vector3 GetGameObjectsCenter(GameObject[] gameObjects){ // 选中所有物体 Selection.objects = gameObjects; // 记录当前Scene窗口的Tool Handle状态 var curPivotMode = Tools.pivotMode; // 将Handle转成Center模式 Tools.pivotMode = PivotMode.Center; // 获取Scene的View SceneView view = SceneView.lastActiveSceneView; // 聚焦并重绘场景 view.Focus(); view.Repaint(); // 保存当前handle的坐标,即为center坐标 var center = Tools.handlePosition; // 复原状态 Selection.objects = null; Tools.pivotMode = curPivotMode; return center;}()
- 获取一组物体的中心坐标