Unity中对GameObject进行旋转

来源:互联网 发布:抗氧化护肤品知乎 编辑:程序博客网 时间:2024/05/01 08:44

下面的方法可以获得GameObject绕指定轴旋转给定角度后的rotation,其返回值是一个四元数。注意该方法只计算原地旋转,即绕GameObject自身锚点旋转,不能设置其他旋转中心。

    /// <summary>    /// 获得GameObject绕轴 axis 旋转 angle 角度后的rotation。    /// </summary>    /// <param name="obj">旋转对象</param>    /// <param name="axis">旋转轴</param>    /// <param name="angle">旋转角度</param>    /// <param name="apply">是否将旋转应用到GameObject</param>    /// <returns>旋转后的rotation</returns>    public Quaternion QRotateAround(Transform obj, Vector3 axis, float angle, bool apply = false)    {        Vector3 forward = Quaternion.AngleAxis(angle, axis) * obj.forward;        Vector3 up = Quaternion.AngleAxis(angle, axis) * obj.up;        Quaternion result = Quaternion.LookRotation(forward, up);        if (apply) obj.rotation = result;        return result;    }
阅读全文
0 0