Unity 角色连击

来源:互联网 发布:韩红 知乎 编辑:程序博客网 时间:2024/05/17 09:39

今天我自己解决了困扰了我一段时间的角色连击问题。

不说了附代码。

连击的动画要是做成一个动画。

private Animator animator;
private AnimatorStateInfo stateInfo;
private int Presstimes=0;//按下键的次数
// Use this for initialization
void Start () {
animator = GetComponent<Animator> ();  
}

// Update is called once per frame
void Update () {
stateInfo = animator.GetCurrentAnimatorStateInfo (0); 
if (stateInfo.IsName ("Idle")||stateInfo.IsName ("Run")|| stateInfo.IsName ("Walk")) {
if (Input.GetKeyDown (KeyCode.X)) {
 
Presstimes=1; 
animator.SetBool("ComoAttack",true); 
}
}
if (stateInfo.IsName ("ComoAttack")) {
if (Input.GetKeyDown (KeyCode.X)) {
if (Presstimes <= 4) { 
Presstimes++; 
}
}
}
}
public void ComoAttack1(){
if (Presstimes==1){
animator.SetBool ("ComoAttack", false);
Presstimes = 0; 
}
}
public void ComoAttack2(){
if (Presstimes<=2) {
animator.SetBool ("ComoAttack", false);
Presstimes = 0; 
}
}
   public void ComoAttack3(){
if (Presstimes<=3){
animator.SetBool ("ComoAttack", false);
Presstimes = 0; 
}
}
public void ComoAttack4(){
if (Presstimes>=4){
animator.SetBool ("ComoAttack", false);
Presstimes = 0; 
}
}

之后要在Animation窗口打开角色的连击动画,在对应帧上 添加对应的函数;

0 0