分享

如何使 Vector3.Slerp实现平滑的运动

 勤奋不止 2022-12-01 发布于北京

static function Vector3 Slerp (Vector3 from, Vector3to, float t)
Spherically interpolates between two vectors.
球形插值在两个向量之间。

可以看到官方文档里表示该值为两个向量之间的差值

  1. 如果想要该使用该函数进行一次圆形运动,那么两个V3的向量需要从球心出发指向两个球面上的点。通过改变球心的位置可以更改圆形形成的弧度。
  2. 匀速运动
    参数t从0到1表示运动的进度,因此t需要为一个从0到1匀速增加的数,代码如下
    /// <summary>
    /// 开始移动
    /// </summary>
    public void BeginMove() {
        time = Time.time;
    }
    void FixedUpdate() {
        if (inMove) {
            //弧形插值 

            transform.position = Vector3.Slerp(start, end, (Time.time-time) *Time.fixedDeltaTime* moveSpeed);
            transform.position += center;
         }
    }

其中center表示球心

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多