在很多时候,我们需要点击后使某一物体移动到指定位置。这时,方法就应该在onMouseDown(碰撞体)或者OnPointClick(UI)被调用。
可以通过携程和movetowards(或者lerp)解决上述问题。
public void movePlayer(Transform target)
{
StartCoroutine(move(target));
}
IEnumerator move(Transform target)
{
while(target.position!=transform.position)
{
Debug.Log(1);
transform.position=Vector3.MoveTowards(transform.position,target.position, 5f*Time.deltaTime);
yield return 0;
}
}
movetowards和lerp方法需要循环调用
yield return 0 之后unity会被激活,前进1帧再继续执行while内的操作。