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

请求实现基于Y轴旋转值计算子对象新偏移量的函数

绕Y轴旋转偏移量的函数实现

直接复用你已经用到的四元数旋转逻辑即可,核心是用对应角度的Y轴旋转四元数去乘旧偏移量,就能得到旋转后的新偏移量:

private Vector3 RotateOffset(Vector3 oldOffset, float rotationY)
{
    // 创建绕Y轴旋转指定角度的四元数
    Quaternion rotation = Quaternion.AngleAxis(rotationY, Vector3.up);
    // 用四元数旋转旧偏移向量,得到新偏移
    return rotation * oldOffset;
}

验证示例

用你给出的测试值调用:

var offset = new Vector3(0f,5f,10f);
var rotationY = 90f;
var newOffset = RotateOffset(offset, rotationY);

计算结果正好是Vector3(10f,5f,0f),符合预期。

原理说明

四元数是Unity中处理3D旋转的标准方式,Quaternion.AngleAxis(angle, axis)会生成一个绕指定轴旋转指定角度的四元数,用这个四元数乘以向量,就等价于将该向量绕对应轴旋转对应角度。因为你的需求是仅绕Y轴旋转,所以直接复用这个逻辑即可,和你实现朝向计算的思路完全一致——本质上朝向是旋转后的forward向量,偏移量则是旋转后的原始偏移向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:15:43