首页 > 其他 > 详细

RotateAround添加距离控制

时间:2020-04-22 18:00:57      阅读:133      评论:0      收藏:0      [点我收藏+]

Transform组件的扩展,添加了旋转半径的属性设置。

核心方法还是Quaternion*Vector

Vector指的是两个点的位置差(旋转点和固定点)。

public static class TransformEx {
    /// <summary>
    /// 通过固定点按照轴向旋转角度
    /// </summary>
    /// <param name="selfTrans">自身的trans</param>
    /// <param name="point">固定点</param>
    /// <param name="axis">轴向</param>
    /// <param name="distance">半径</param>
    /// <param name="angle">角度</param>
    public static void RotateAroundByPointByDistance(this Transform selfTrans, Vector3 point, Vector3 axis,float distance, float angle)
    {
        Quaternion q = Quaternion.AngleAxis(angle, axis);
        Vector3 distanceOffset =Vector3.Normalize(selfTrans.position - point)*distance;
        selfTrans.position = q * distanceOffset;
    }
}

 

RotateAround添加距离控制

原文:https://www.cnblogs.com/yzxhz/p/12753467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!