因为第一次跳跃使用了DoTween中的DOMoveY方法,所以在这之后调用oncomplete()。之前因为使用waitforscends无法达到预期,后来发现了WaitUntil和WaitWhile这两个可以将协程挂起的方法后得以实现。
下面是代码实现 。
//跳跃方法
if (Input.GetKey(KeyCode.Space) && !isJump)//跳跃
{
transform.DOMoveY(transform.position.y + 100, 0.3f).OnComplete(()=>
{
StartCoroutine("TwoJump");
});
isJump = true;
}
//对应协程
IEnumerator TwoJump()
{
yield return new WaitUntil(() => (Gamemanager.Instance.isTwoJump && Input.GetKey(KeyCode.Space)));
transform.DOMoveY(transform.position.y + 100, 0.3f);
}