void DirectionState() { if (e_dir != Vector3.zero) { float dir_angle = Mathf.Atan2(e_dir.y, e_dir.x) * Mathf.Rad2Deg; if (dir_angle < -135.0f || dir_angle >= 135.0f) { //RIGHT e_dir_state = Enemy_direction.E_RIGHT; } else if (dir_angle < 45.0F && dir_angle >= -45.0f) { //LEFT e_dir_state = Enemy_direction.E_RIGHT; } else if (dir_angle < 135.0f && dir_angle >= 45.0f) { //DOWN e_dir_state = Enemy_direction.E_RIGHT; } else if (dir_angle < -45.0f && dir_angle >= -135.0f) { //UP e_dir_state = Enemy_direction.E_RIGHT; } } else { e_dir_state = Enemy_direction.E_RIGHT; } }
// Update is called once per frame void Update() { if (prev_state != enemy_behaviour.e_state || prev_dir != enemy_behaviour.e_dir_state) { StateChange(); } prev_state = enemy_behaviour.e_state; prev_dir = enemy_behaviour.e_dir_state; }