}//-----

    // ----------------------------------------------------------------------
    void Idle()
    {
        if (Vector3.Distance(transform.position, tx_target.position) < fl_chase_range)
        {
            NPC_state = en_states.Attack;
        }
    }//-----
    }//-----

    // ----------------------------------------------------------------------
    private void RechargeHP()
    {
        nm_agent.SetDestination(GameObject.Find("Home").transform.position);
        if (fl_HP > 60)
        {
            NPC_state = en_states.Attack;
        }
    }//-----
    }//-----

    // ----------------------------------------------------------------------
    private void SwitchStates()
    {
        if (fl_HP < 30)
        {
            NPC_state = en_states.Recharge;
        }

        switch (NPC_state)
        {
        case en_states.Idle:
            Idle();
            break;

        case en_states.Recharge:
            RechargeHP();
            break;

        case en_states.Attack:
            AttackEnemy();
            break;
        }
    }//-----
Beispiel #4
0
    }//-----

    // ----------------------------------------------------------------------
    void Idle()
    {
        if (Vector3.Distance(transform.position, GO_target.transform.position) < fl_range)
            NPC_state = en_states.Patrol;

    }//-----