正如標題所示,我正在嘗試在我的角色控制器中進行雙跳。問題是,使用我的代碼,角色會進行一次大跳躍,而不是進行第二次跳躍。
這是我的代碼:
if (m_Grounded && jump)
{
// Add a vertical force to the player.
m_Grounded = false;
m_Rigidbody2D.AddForce(new Vector2(0f, m_JumpForce));
canDoubleJump = true;
} else if (canDoubleJump)
{
m_Rigidbody2D.AddForce(transform.up * m_Thrust, ForceMode2D.Impulse);
canDoubleJump = false;
}
定義的變數是:
bool canDoubleJump;
public float m_Thrust = 200f;
[SerializeField] private float m_JumpForce = 400f;
到目前為止我已經嘗試過:
我嘗試將相同的 Vector2 jumpForce 添加到雙跳位置,但它只是一個比現在更大的跳躍。
我嘗試改變 else if to
else if (canDoubleJump && Input.GetButtonDown("Jump"))
似乎沒有任何效果。感謝所有想法<3
編輯
如果有人需要,我以某種方式用這段代碼解決了這個問題:
// If the player should jump...
if (m_Grounded && jump)
{
// Add a vertical force to the player.
m_Grounded = false;
m_Rigidbody2D.AddForce(transform.up * m_JumpForce, ForceMode2D.Impulse);
canDoubleJump = true;
}
else if (canDoubleJump && !m_Grounded && jump)
{
m_Rigidbody2D.AddForce(transform.up * m_JumpForce, ForceMode2D.Impulse);
canDoubleJump = false;
}
現在剩下的唯一問題是增加物理效果,但這個想法是可行的。
感謝大家的幫助!
uj5u.com熱心網友回復:
變數有什么作用jump?因為整個 if 陳述句需要在另一個類似的陳述句中
if(Input.GetButtonDown("Jump"))
{
jump這樣,如果您以錯誤的方式執行條件,就沒有機會按下它兩次。
如果這不起作用或者已經設定好了,請嘗試將其添加到else if條件中
} else if (canDoubleJump && ! m_Grounded)
我只是提出一些想法,因為我很困惑為什么它不能按原樣作業。
uj5u.com熱心網友回復:
你的代碼不是很清楚,但你可以使用這個代碼它對我來說很好當第一次呼叫跳轉時,它會跳轉一次,當它被呼叫并且玩家不接觸地面時,它只會再跳轉一次
public Rigidbody2D m_Rigidbody2D;
public float m_Thrust = 400;
public bool isGrounded;
public bool TowJump;
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground"){
isGrounded = true;
TowJump = false;
}
}
void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground"){
isGrounded = false;
}
}
public void Jumped()
{
if(TowJump == false && isGrounded == false)
{
m_Rigidbody2D.AddForce(transform.up * m_Thrust, ForceMode2D.Impulse);
TowJump = true;
}
if(isGrounded == true)
{
m_Rigidbody2D.AddForce(transform.up * m_Thrust, ForceMode2D.Impulse);
}
}
請注意,您必須使用名稱“地面”標記地板
編輯
代碼沒有問題,嘗試按照圖片所示的步驟操作
播放器

地面

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427550.html
下一篇:網路日和IF陳述句
