天天看点

动画状态机Animator-Unity3d

该模型一直处于奔跑状态,点击跳跃则跳跃一次后回到奔跑状态,点击攻击后则攻击一次回到奔跑状态。

动画状态机Animator-Unity3d

控制代码如下:

using UnityEngine;
using System.Collections;

//该人物一直处于奔跑状态,点击跳跃则跳跃一次后回到奔跑状态,点击攻击后则攻击一次回到奔跑状态。
public class p1101 : MonoBehaviour {

    private Animator p1101Animator;

    void Start () {
        p1101Animator = GetComponent<Animator>();
    }

    //点击执行一次跳跃
    public void onClickToJump() {
        //con是Int类型条件,需要自己设置回奔跑状态(见Update()方法)
        p1101Animator.SetInteger("con",);
    }

    //点击执行一次攻击
    public void onClickToAtc() {
        //atc是Trigger类型条件,利用Trigger来做状态机条件,执行后Trigger会自动关闭,适合只执行一次的状态
        p1101Animator.SetTrigger("atc");
    }

    void Update() {
        //跳跃状态执行时,设定返回奔跑状态
        //Int,Bool,Float类型状态需要设置才会回去
        AnimatorStateInfo p1101StateInfo = p1101Animator.GetCurrentAnimatorStateInfo();
        if (p1101StateInfo.IsName("jump")){
            p1101Animator.SetInteger("con", );
        }
    }
}
           

继续阅读