簡體   English   中英

玩家在接觸地面時會跳躍,但如果我不使用我的跳躍,則會跳兩段

[英]Player jumps when it touches the ground but double jumps if I dont use my jump

在此處輸入圖像描述

[...]
    // jump
    float verticleMove = joyStick.Vertical;
    if (verticleMove >= .1f && isGrounded)
    {
        body.AddForce(new Vector2(0, 10), ForceMode2D.Impulse);
        FindObjectOfType<AudioManager>().Play("Jump");
        isGrounded = false;
    }
}

void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.collider.CompareTag("Enemy"))
    {
        TakeDamage(50);
    }
    if (collision.collider.CompareTag("Ground"))
    {
        isGrounded = true;
    }
}

如果我跳躍並降落在地面上,之后如果我不使用跳躍,例如,如果我從平台上掉下來,我可以使用那個跳躍。 為什么會堆疊起來? 我只想在接觸地面時使用跳躍。 我也附上了跳躍代碼的屏幕截圖。

使用isGrounded = true; ,您可以再次使用它。 例如,如果您想在從平台上掉下來時禁用,我會嘗試:

void OnCollisionExit2D(Collision other)
{
    if (collision.collider.CompareTag("Ground"))
    {
        isGrounded = false;
    }
}

這樣當你沒有接觸地面時,跳躍也會被禁用,但不僅適用於你跳躍的情況,也適用於任何其他情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM