簡體   English   中英

我的跳躍延遲代碼無法正常工作

[英]My jump delay code is not working properly

我目前正在開發一個 unity3d 游戲並且有一個跳躍錯誤,玩家可以在其中垃圾郵件跳牆,所以我一直在嘗試實施跳躍延遲以防止這種情況發生。 但是,我似乎無法讓代碼正常工作。

我添加了一個新的跳躍延遲 function 並編輯了我的更新 function 以包含延遲。

IEnumerator JumpDelay()
    {
        cantJump = true;
        yield return new WaitForSeconds(jumpingDelay);
        cantJump = false;
    }
if (!cantJump && (controller.collisionFlags & CollisionFlags.Below) != 0)
        {
            if (!mobileMode)
            {
                motor.inputJump = Input.GetButton("Jump");
            }
            else
            {
                motor.inputJump = mobileJumping;
            }
        }

然后,由於我有一個陸地 function,因為有游泳等其他方面,我繼續將此代碼添加到該 function 的開頭

if (jumpingDelay > 0)
        {
            StartCoroutine(JumpDelay());
        }

添加所有這些后,沒有延遲發生,我仍然可以垃圾郵件跳上牆。 關於我需要添加或修復什么才能使這項工作有什么建議嗎?

您提供的代碼和描述不會顯示您在跳躍時調用過延遲協程。 因為你只說你稱之為“陸地”,所以這永遠不會產生你想要的結果。

暫無
暫無

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

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