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

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表示球心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JousonRen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值