Unity中有限状态机动画中的状态转换未发生

时间:2018-01-02 02:15:05

标签: c# animation unity3d unity5 state-machine

我试图在Unity中为战士制作动画。我创建了一个有限状态机,如下图所示。有三个转换参数:btn_walking,btn_jumping和btn_attacking。当用户持有密钥w时,btn_walking参数设置为true,当密钥j和a分别保持时,btn_jumping和btn_attacking也会发生相同的情况。

enter image description here

但是,当游戏启动时,即使按下按键w,j和a,战士仍保持在player_iddle状态。我是Unity的小伙子,可能我犯了一些错误。

给战士(GameObject player_sprite)注意以下脚本(player.cs):

公共班级选手:MonoBehaviour {

private Animator animator;
bool btn_walking = false;
bool btn_jumping = false;
bool btn_attacking = false;
// Use this for initialization
void Start () {

    animator = this.GetComponent<Animator>();

}

// Update is called once per frame
void update() {

    btn_walking = false;
    btn_jumping = false;
    btn_attacking = false;


    if(Input.GetKey(KeyCode.W)){
        btn_walking = true;
        Debug.Log ("clicked on W");
    }

    if(Input.GetKey(KeyCode.J)){
        btn_jumping = true;
        Debug.Log ("clicked on J");
    }

    if(Input.GetKey(KeyCode.A)){
        btn_attacking = true;
        Debug.Log ("clicked on A");
    }

    animator.SetBool("btn_walking", btn_walking);
    animator.SetBool("btn_jumping", btn_jumping);
    animator.SetBool("btn_attacking", btn_attacking);
}

}

我也在看我的Unity项目。有人会举手吗?当用户按住某个键时,如何让战士改变其动画状态?

谢谢!

link to download at Google drive

0 个答案:

没有答案