移动方法(传入需要移动的instance和目标位置)
public Transform targetPosition; //目标位置
Vector3 target = targetPosition.position;
private IEnumerator MoveTowardsTarget(GameObject instance, Vector3 target)
{
// 缓慢移动到目标的方法
Vector3 startPosition = instance.transform.position;
float timeElapsed = 0f;
float duration = 1f;
while (timeElapsed < duration)
{
float t = timeElapsed / duration; //计算比例
instance.transform.position = Vector3.Lerp(startPosition,target,t);
timeElapsed += Time.deltaTime; //增加经过时间
yield return null; // 等待下一帧
}
// 确保最终位置准确
instance.transform.position = target;
}
targetPosition可以是指定的空对象或者任意一个GameObject