IEnumerator swapPosition(MyCharacterController target, Action callback) { float time = Time.timeSinceLevelLoad; Vector2 end = target.CurrentPosition; StartCoroutine(target.normalMove2(time, target.CurrentPosition, this.CurrentPosition, () => { })); yield return StartCoroutine(this.normalMove2(time, this.CurrentPosition, end, () => { })); callback(); }