unity2d中使物体向目标位置移动
时间: 2023-11-09 09:05:54 浏览: 129
可以通过以下代码实现:
```csharp
public Transform target; // 目标位置
public float speed = 5f; // 移动速度
void Update()
{
// 计算方向向量
Vector3 direction = target.position - transform.position;
direction.Normalize();
// 计算移动距离
float distance = Vector3.Distance(transform.position, target.position);
// 如果距离大于0
if (distance > 0)
{
// 计算移动向量
Vector3 movement = direction * speed * Time.deltaTime;
// 如果移动距离大于等于剩余距离
if (movement.magnitude >= distance)
{
// 将对象移动到目标位置
transform.position = target.position;
}
// 否则移动对象
else
{
transform.position += movement;
}
}
}
```
在该脚本中,需要设置目标位置和物体的移动速度。每帧计算物体到目标位置的方向向量,然后计算移动距离,如果距离大于0,就计算移动向量并移动对象。在移动过程中,如果移动距离大于等于剩余距离,则直接将对象移动到目标位置。
阅读全文