// Use this for initialization void Start() { //get reference to animator component m_Animator = GetComponent <Animator>(); //get player reference Player cmpPlayer = (Player)GameObject.FindObjectOfType(typeof(Player)); if (cmpPlayer != null) { m_Player = cmpPlayer.gameObject; } else { m_Player = null; } //get ground position GetGroundPosition(); //get distance close to player to stop movement CloseOffset = AttackRangeSquare - 1; //asign random value for movement animations WalkType = Random.value; //get zombie speed Speed = (RandomSpeed) ? Random.Range(0.2f, 2.0f) : Speed; //initial state m_eState = GlobalData.ZombieState.Rising; }
void ChangeState(GlobalData.ZombieState newState) { //manage state transitions switch (m_eState) { case GlobalData.ZombieState.Attack: OnExitAttacking(); break; } m_eState = newState; switch (m_eState) { case GlobalData.ZombieState.Moving: OnEnterMoving(); break; case GlobalData.ZombieState.Attack: OnEnterAttacking(); break; case GlobalData.ZombieState.Death: OnEnterDeath(); break; } }