unity 一个位置向另一个位置移动的IEnumerator代码
时间: 2024-10-02 17:04:46 浏览: 24
Unity实现弧形移动效果
在Unity中,如果你想创建一个让游戏对象从一个位置移动到另一个位置的 IEnumerator(用于Coroutine系统),你可以使用`Vector3.Lerp`函数来平滑地插值运动。以下是一个简单的例子:
```csharp
using UnityEngine;
using System.Collections;
public class MoveObject : MonoBehaviour
{
public Transform targetPosition; // 目标位置的Transform组件
public float moveSpeed = 0.1f; // 移动速度
private Vector3 currentPos; // 当前位置
void Start()
{
currentPos = transform.position; // 初始化当前位置
}
IEnumerator MoveToTarget()
{
while (transform.position != targetPosition.position)
{
// 使用Lerp进行平滑移动
transform.position = Vector3.Lerp(currentPos, targetPosition.position, Time.deltaTime * moveSpeed);
// 输出进度信息(这里只是为了演示)
Debug.Log($"Moving... {transform.position.ToString()}");
yield return null; // 等待下一个帧
}
Debug.Log("Arrived at target position.");
}
}
阅读全文