簡體   English   中英

我的c#播放器跳碼怎么回事? (統一 3d)

[英]What is wrong with my c# player jumping code ? (unity 3d)

我剛開始學習統一 3d,我寫了 c# 代碼讓我的播放器跳起來但它不起作用

public Rigidbody rb;
public float SideWaysForce = 500f;
bool CanJump;

    void OnCollisionEnter(Collision collisioninfo)
    {
        if (collisioninfo.collider.tag == "Ground")
        {
            Debug.Log("Can Jump");
            CanJump = true;
        }
        
        if (collisioninfo.collider.tag != "Ground")
        {
            Debug.Log("Can not Jump");
            CanJump = false;
        }
    }

void FixedUpdate()

if (CanJump == true && Input.GetKey("space"))
        {
             rb.AddForce(0, SideWaysForce * Time.deltaTime, 0);
        }

控制台中未顯示任何錯誤消息

好吧,調試(使用調試器或使用Debug.Log )如果腳本甚至可以工作,那么請確保CanJumpInput.GetKey("Space")都為真。 此外,如果您不想讓角色在握着鑰匙時飛起來,您可能應該使用Input.GetKeyDown

  1. 確保玩家連接了剛體
  2. 確保玩家連接了對撞機(例如網格對撞機)
  3. 確保播放器附加了該腳本。
  4. 確保 RigidBody (rb) 在檢查器中分配給玩家的剛體。
  5. 確保檢查器和代碼中的側向力值相同(兩者都應為 500f)。
  6. 在固定更新中,您應該使用Input.GetKey("Space")而不是Input.GetKey("space") (我相信大寫字母很重要)。
  7. 確保您的接地 object 附有“接地”標簽。

如果這些解決方案都不能解決您的問題,請告訴我。

暫無
暫無

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

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