You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity克隆父物体后子物体销毁,轴心未重置至自身中心如何解决?

解决Unity克隆物体后轴心不重置的问题

方法一:编辑器内手动修正

  • 选中克隆后的父物体,点击顶部菜单栏 GameObject -> Center On Children,直接将轴心重置为当前物体(不含已销毁子物体)的几何中心。
  • 若需要完全重置Transform属性,右键点击Transform组件,选择Reset,之后重新调整物体的世界位置即可。

方法二:运行时脚本动态调整

如果是在运行时自动处理克隆、销毁子物体后的轴心偏移,可添加以下代码逻辑:

// 假设clonedParent是克隆后的父物体引用
GameObject clonedParent = YourClonedObjectReference;

// 销毁子物体后执行轴心修正
Renderer[] renderers = clonedParent.GetComponentsInChildren<Renderer>();
if (renderers.Length > 0)
{
    // 计算当前物体的合并包围盒
    Bounds combinedBounds = renderers[0].bounds;
    foreach (Renderer r in renderers)
    {
        combinedBounds.Encapsulate(r.bounds);
    }
    // 计算轴心偏移量并调整,保持世界位置不变
    Vector3 localCenterOffset = clonedParent.transform.InverseTransformPoint(combinedBounds.center);
    clonedParent.transform.position -= clonedParent.transform.TransformVector(localCenterOffset);
    clonedParent.transform.localPosition = Vector3.zero;
}

注:如果物体没有Renderer组件,可根据碰撞体(Collider)计算包围盒,或者手动指定轴心坐标。

方法三:克隆前预处理

  • 克隆原父物体前,先将其轴心重置为自身中心:先临时移除子物体,点击GameObject -> Center On Children,再把子物体加回去;或者直接用编辑器的Pivot工具手动拖拽轴心到父物体几何中心。
  • 处理完成后再克隆,克隆体的轴心会直接继承修正后的位置,销毁子物体后也不会出现偏移。

内容的提问来源于stack exchange,提问作者melbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:27:33