// Use this for initialization void Start() { damage = m_Damage; reloadTime = m_ReloadTime; m_AIBehaviours = GetComponentInParent <AIBehaviours>(); m_AIAnimations = GetComponentInParent <AIAnimations> (); }
// Use this for initialization void Start() { m_Animator = GetComponent <Animator> (); m_AIStates = GetComponent <AIBehaviours> (); m_NavMeshAgent = GetComponent <NavMeshAgent> (); canAttack = true; }
void Awake() { m_AIMovement = GetComponent <AIMovement> (); m_NavMeshAgent = GetComponent <NavMeshAgent> (); m_AIAnimations = GetComponent <AIAnimations> (); m_AIHealth = GetComponent <AIHealth> (); m_Animator = GetComponent <Animator> (); m_AIBehaviours = GetComponent <AIBehaviours> (); m_Class = GetComponent <Class> (); m_AIShooting = GetComponent <AIShooting> (); }
void Walk(Transform target) { LockPlayer(target); if(target.GetComponent<Character>().states == PlayerStates.ko || target.GetComponent<Character>().states == PlayerStates.rise){ player.Play("Idle"); states = PlayerStates.idle; } else{ if(Time.time > time) behaviours = AIBehaviours.none; switch(behaviours){ case AIBehaviours.gostraigth:GoStraight(target);break; case AIBehaviours.gostraigthcarefully:GoStraightCarefully(target);break; case AIBehaviours.goaround:GoAround();break; case AIBehaviours.none:states = PlayerStates.idle;player.Play("Idle");break; } } }
void Idle(Transform target) { if(target){ if(behaviours == AIBehaviours.none){ if(thinkingTime >= 1f){ thinkingTime=0; strategyTime = Random.Range(strategyTimes.x,strategyTimes.y); time = Time.time+strategyTime; player.Play("walk"); states = PlayerStates.walk; behaviours = (AIBehaviours)Random.Range(1,4); } else{ thinkingTime+=Time.deltaTime; } } else{ if(target.GetComponent<Character>().states != PlayerStates.ko && target.GetComponent<Character>().states != PlayerStates.rise && target.GetComponent<Character>().states != PlayerStates.dead){ strategyTime = Random.Range(strategyTimes.x,strategyTimes.y); time = Time.time+strategyTime; player.Play("walk"); states = PlayerStates.walk; behaviours = (AIBehaviours)Random.Range(1,4); } } } }
void GoAround() { if(waypoint == -1){ int b = Random.Range(0,2); if(b==1) way = true; else way = false; if(SearchNearest()){ if(way) waypoint = 1; else waypoint= 5; rev=false; } else{ if(way) waypoint = 4; else waypoint= 8; rev=true; } pointPos = GameObject.Find("pathPoint"+waypoint).transform; } else{ moveDirection = Vector3.Normalize(pointPos.position-transform.position); moveDirection.z = moveDirection.y; transform.Translate(moveDirection * velocity*Time.deltaTime); if(Vector3.Distance(transform.position,pointPos.position) <= 30f){ if(rev && way && waypoint == 1 || rev && !way && waypoint == 5 || !rev && way && waypoint == 4 || !rev && !way && waypoint == 8){ waypoint=-1; behaviours = (AIBehaviours)Random.Range(1,4); } else{ if(rev) waypoint--; else waypoint++; pointPos = GameObject.Find("pathPoint"+waypoint).transform; } } } }