Vector3.MoveTowards方法

介绍

Vector3.MoveTowards 是 Unity 引擎中的一个方法,用于在当前位置和目标位置之间移动。该方法返回一个新的向量,表示从当前位置到目标位置的移动。

方法

public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
  • current:当前位置。
  • target:目标位置。
  • maxDistanceDelta:最大移动距离。该参数表示当前位置和目标位置之间的最大距离差,超过该距离将不再移动。该参数通常使用正值。

举例子

以下是一些常见的使用示例:

示例 1:平滑移动物体

public class MyMover : MonoBehaviour
{
    public Transform target;
    public float speed = 1.0f;

    private void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
    }
}

在此示例中,MyMover 脚本将物体从当前位置移动到目标位置。在 Update 方法中,使用 Vector3.MoveTowards 方法将物体从当前位置向目标位置进行平滑移动。其中,transform.position 表示当前物体的位置,target.position 表示目标位置,speed 表示移动速度,Time.deltaTime 表示上一帧到当前帧的时间间隔。

示例 2:限制移动距离

public class MyLimitedMover : MonoBehaviour
{
    public Transform target;
    public float speed = 1.0f;
    public float maxDistance = 10.0f;

    private void Update()
    {
        if (Vector3.Distance(transform.position, target.position) > maxDistance)
        {
            transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
        }
    }
}

在此示例中,MyLimitedMover 脚本将物体从当前位置移动到目标位置,但限制了移动距离。在 Update 方法中,首先通过 Vector3.Distance 方法计算当前位置和目标位置之间的距离,如果该距离超过了 maxDistance 参数,则调用 Vector3.MoveTowards 方法进行移动。这样可以限制物体的移动范围。

示例 3:沿指定方向移动

public class MyDirectionalMover : MonoBehaviour
{
    public Vector3 direction = Vector3.forward;
    public float speed = 1.0f;

    private void Update()
    {
        transform.position += direction * speed * Time.deltaTime;
    }
}

在此示例中,MyDirectionalMover 脚本将物体沿着指定方向进行移动。在 Update 方法中,使用简单的向量加法将物体沿着 direction 参数指定的方向进行移动。其中,direction 表示移动的方向向量,speed 表示移动速度,Time.deltaTime 表示上一帧到当前帧的时间间隔。需要注意的是,该示例中并未使用 Vector3.MoveTowards 方法,但同样可以实现物体的移动。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

忽然602

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

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

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

打赏作者

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

抵扣说明:

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

余额充值