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

Unity中如何旋转GameObject时固定其一侧位置?

实现Unity GameObject旋转时固定单侧位置的方法

方法一:调整对象的轴心(Pivot)

  • 直接修改模型的轴心到固定端:选中对象后,切换到移动工具(快捷键W),点击顶部工具栏的Pivot/Center按钮选择「Pivot」,再开启「Edit Pivot」(可在Editor Settings中调出该选项),手动拖动轴心到你想固定的那一端位置。
  • 更稳妥的方式:如果是导入的模型,建议在建模软件(如Blender、Maya)里把模型原点调整到固定端后再导入Unity,避免Unity内调整轴心可能出现的坐标异常。

方法二:父物体挂载法

  • 创建一个空GameObject作为父物体,将它的位置移动到长杆需要固定的那一端位置。
  • 把长杆对象设为这个父物体的子物体,调整长杆的局部坐标,让长杆的固定端与父物体位置完全重合。
  • 后续旋转父物体即可,长杆会围绕父物体位置(即固定端)旋转,实现固定一端的效果。

方法三:代码动态计算偏移(适合动态切换固定点的场景)

  • 核心思路:旋转前记录固定点的世界坐标,旋转后计算偏移量,再将对象移回以保持固定点位置不变。
  • 示例代码:
public Transform fixedPoint; // 拖拽长杆固定端的空物体Transform
public float rotateSpeed = 30f;

void Update()
{
    if (Input.GetMouseButton(0))
    {
        // 记录旋转前固定点的世界位置
        Vector3 originalFixedPos = fixedPoint.position;
        // 执行旋转
        transform.Rotate(Vector3.up, rotateSpeed * Time.deltaTime);
        // 计算偏移并修正位置,让固定点回到原位置
        Vector3 offset = originalFixedPos - fixedPoint.position;
        transform.position += offset;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:30:54