protected override void AIUpdate_undetect()
    {
        base.AIUpdate_undetect();
        float rand = GetAIRandomNumver();

        switch (aiState)
        {
        case AISTATE.AISELECT:
            ResetRandFiexed();

            if (rand < aiStateNum_walk_ud)
            {
                SetAIState(AISTATE.APPROACH_WALK, 5.0f);
            }
            else if (rand < AiStateNum_wait_ud)
            {
                SetAIState(AISTATE.WAIT, 5.0f);
            }
            else if (rand < AiStateNum_rest_ud)
            {
                SetAIState(AISTATE.ATTACK, 3.0f);
            }
            break;

        case AISTATE.WAIT:
            break;

        case AISTATE.APPROACH_WALK:
            if (!IsFixedRandomNumber)
            {
                SetRandFiexed(GetAIRandomNumver());
                nowTarget = transform.position + new Vector3((RandomFixedNumber > 50)?20:-20, 0);
            }
            if (EnemyCtrl.MoveToTarget_X(1.0f, nowTarget, EnemyCtrl.MoveSpeed * 0.5f))
            {
                SetAIState(AISTATE.WAIT, 2.0f);
            }
            break;

        case AISTATE.ATTACK:
            animator.SetTrigger("rest");
            SetAIState(AISTATE.WAIT, 5.0f);
            break;
        }
    }