我试着用双跳和土狼的时间来做一个跳台,但是土狼的时间似乎不适用于双跳。每当狼跳被认为是触发,角色使用他们的双跳代替。
if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps > 0
|| Input.GetKeyDown(KeyCode.Space) && extraJumps > 0
|| Input.GetKeyDown(KeyCode.W) && extraJumps > 0)
{
rigidbody2D.velocity = Vector2.up * jumpForce;
extraJumps--;
audioSource.Play();
}
else if (Input.GetKeyDown(KeyCode.UpArrow) && extraJumps == 0 && coyoteCounter > 0f
|| Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && coyoteCounter > 0f
|| Input.GetKeyDown(KeyCode.W) && extraJumps == 0 && coyoteCounter > 0f)
{
rigidbody2D.velocity = Vector2.up * jumpForce;
audioSource.Play();
}发布于 2022-02-28 02:49:07
在检查郊狼的时间之前,你正在检查双跳。当您检查第一个代码块时,它总是在检查郊狼时间之前使用双跳。这应该可以解决您的问题:
if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.W))
{
// Check coyote timer before we activate a double jump
if (coyoteCounter > 0f)
{
rigidbody2D.velocity = Vector2.up * jumpForce;
audioSource.Play();
}
// Now we have run out of coyoteCounter, time to use double jumps
else if (extraJumps > 0)
{
rigidbody2D.velocity = Vector2.up * jumpForce;
extraJumps--;
audioSource.Play();
}
}您还可能希望确保播放机只能触发一次coyoteCounter ;)
https://stackoverflow.com/questions/71280811
复制相似问题