Transform A;
Transform B;
public float moveTime= 3f; //A点到B点需要的时间
public void Move()
{
StartCoroutine(IMove());
}
IEnumerator IMove()
{
Vector3 fromPos = A.position;
float t = 0;
while (t < 1)
{
t += Time.deltaTime / moveTime;
PlayeIcon.transform.position = Vector3.Lerp(fromPos, B, t);
yield return null;
}
A.position = pos[curIndex].position;
Debug.Log("A点成功到达B点");
yield return null;
}
通过协程调用差值可以平滑的移动过去,这里是通过时间来决定速度的快慢。