protected override void AIUpdate_detect() { base.AIUpdate_detect(); ResetRandFiexed(); float rand = GetAIRandomNumver(); switch (aiState) { case AISTATE.AISELECT: if (rand < aiStateNum_walk) { SetAIState(AISTATE.APPROACH_WALK, 5.0f); } else if (rand < AiStateNum_dash) { SetAIState(AISTATE.APPROACH_DASH, 5.0f); } else if (rand < AiStateNum_attack) { SetAIState(AISTATE.ATTACK, 20.0f); } else if (rand < AiStateNum_escape) { SetAIState(AISTATE.ESCAPE_DASH, 4.0f); } else { SetAIState(AISTATE.WAIT, 3.0f); animator.SetTrigger("rest"); } break; case AISTATE.APPROACH_WALK: if (EnemyCtrl.MoveToPlayer_X(10.0f, EnemyCtrl.MoveSpeed * 0.5f)) { SetAIState(AISTATE.ATTACK, 4.0f); } break; case AISTATE.APPROACH_DASH: if (EnemyCtrl.MoveToPlayer_X(10.0f, EnemyCtrl.MoveSpeed)) { SetAIState(AISTATE.ATTACK, 4.0f); } break; case AISTATE.ESCAPE_DASH: if (EnemyCtrl.EscapeToPlayer_X(60.0f, EnemyCtrl.MoveSpeed)) { SetAIState(AISTATE.WAIT, 3.0f); } break; case AISTATE.ATTACK: break; case AISTATE.WAIT: break; } }