Qu/Assets/DragonState2.cs
Gerard Gascón bd5b1556ff init
2025-04-24 14:23:29 +02:00

38 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DragonState2 : StateMachineBehaviour{
Transform player;
bool alreadyAtacked;
float randomTime;
int randomAttack;
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
player = FindObjectOfType<PlayerController>().GetComponent<Transform>();
alreadyAtacked = false;
randomTime = Random.Range(1f, 3f);
randomAttack = Mathf.RoundToInt(Random.Range(550f, 2450f) / 1000f);
}
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
randomTime = randomTime - (1 * Time.fixedDeltaTime);
if (randomTime <= 0 && !alreadyAtacked){
if(randomAttack == 1){
animator.SetTrigger("FireBallAttack");
alreadyAtacked = true;
}else if(randomAttack == 2){
animator.SetTrigger("FireAttack");
alreadyAtacked = true;
}
}
}
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
animator.ResetTrigger("FireBallAttack");
}
}