簡體   English   中英

團結人物飛翔

[英]Unity character goes flying

因此,我目前正在着手進行角色的跳躍,但我已經按照自己的意願進行了跳躍工作,只是它不會檢查地面。 我可以輕松地創建一個與標記為地面的對象碰撞時真假的布爾,但是我想使用“字符控制器”組件來實現,因為我想將其用於其他功能。

但是,當我添加角色控制器時,第二秒鍾我移動了玩家,他以大約100000 km / h的速度飛行...

如何避免這種情況? 有人可以修復我的腳本,並解釋為什么它發生的思考過程嗎?

跳轉我腳本的一部分:

void update () {
    if (rb.velocity.y < 0) {
        rb.velocity += Vector3.up * Physics.gravity.y * (fallMultiplier - 1) * Time.deltaTime;
    } else if (rb.velocity.y > 0 && !Input.GetButton ("Jump")) {
        rb.velocity += Vector3.up * Physics.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime;
    }

    //Hoppe funktionen
    if (Input.GetButtonDown("Jump")) {
        GetComponent<Rigidbody> ().velocity = Vector3.up * jumpForce;
        //Debug til hop
        //Debug.Log("Surface is jumpable");
    }
}

我也很想知道我的角色是否能保持空中力量,所以我在空中出生時不能像往常那樣輕易地轉身,而是繼續朝着我跳躍的方向前進。

根據您所說的,我假設您正在顯示的代碼是有效的代碼,而添加的Character Controller腳本是什么錯誤呢?

“飛行”錯誤很常見,可能有很多情況。 檢查以下內容:

  1. 不是觸發器的多個物理碰撞器
  2. 多個剛體(在您的代碼中,您似乎在引用兩個可能不同的變量-變量rb和GetComponent)
  3. 每幀更新力-有時它是一個偷偷摸摸的IF語句,由於接收到錯誤的數據而導致錯誤

我可以輕松地創建一個與標記為地面的對象碰撞時真假的布爾,但是我想使用“字符控制器”組件來實現,因為我想將其用於其他功能。

為什么不只是在角色控制器本身中這樣做呢?

暫無
暫無

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

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