簡體   English   中英

unity 2D 跳轉按鈕 Onclick Animation 無法正常工作

[英]Unity 2D Jump Button Onclick Animation does not work properly

我在同一個問題上坐了幾個小時。 我正在做一個 WebGL 游戲,在 PC 上玩時應該可以用移動控制(觸摸)或鍵盤玩。 在游戲開始時,會詢問玩家他玩的是鍵盤還是移動設備,然后當他玩移動設備時,它會將 UI 更改為操縱桿和按鈕。

在 Unity Animator 中,Players Animations for Movement 確實有控制動畫的布爾值,所以當 anim.SetBool("Jump", true) 跳轉 Animation 開始時。 當 false 並且 Player 沒有移動時,播放 Idle Animation,或者當 false 和 Movement 時,播放 Walk Animation。

當我按“空格”時,這一切都很好。 當我按下 Space Jump() 時被調用。

使用鍵盤演奏時,玩家的動作很好,但我很難讓跳躍按鈕起作用。 字符正在跳躍,但出於任何原因,animation 僅在輸入來自鍵盤時才起作用。 同樣,按鈕和鍵盤只是調用相同的 function,請看一下:

using UnityEngine.UI;

public class PlayerMovement : MonoBehaviour
{
    //...
    public bool isMobile;
    public Joystick joystick;

    GameObject rend;

    public Button buttonJump;

    void Start()
    {
        // HERE Jump() IS INVOKED, WHEN THE JUMP BUTTON IS PRESSED!
        buttonJump.onClick.AddListener(Jump);
    }

    void Update()
    {
        PlayerJump();
        CheckIsGrounded();
    }

    private void FixedUpdate()
    {
        PlayerWalk();
    }

    void PlayerJump()
    {
        if (isGrounded)
        {
            if ( Input.GetKey(KeyCode.Space))
            {
                Jump();
            }
        }
    }

    //WHEN INVOKED VIA JUMP BUTTON, THE PLAYER MOVES UP FINE, BUT THE JUMP ANIMATION DOES NOT START!
    public void Jump()
    {
        if (isGrounded)
        {
            anim.SetBool("Jump", true);
            jumped = true;
            myBody.velocity = new Vector2(myBody.velocity.x, jumpPower);
        }
    }

    void CheckIsGrounded()
    {
        isGrounded = Physics2D.Raycast(groundCheckPosition.position, Vector2.down, 0.1f, groundLayer);

        if (isGrounded)
        {
            if (jumped) 
            {
                anim.SetBool("Jump", false);

                jumped = false;
            }
        }
    }
}

我有一個解決方法,我認為 Unity 本身存在類似錯誤(使用 2019.3.8f1)。 我只是創建了一個自己的腳本,僅用於一個 Jump Button,當它被按下時,為 Animator 設置布爾值並將速度添加到剛體,與我在舊代碼中編寫的完全相同,但在新腳本中有用。

暫無
暫無

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

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