Esempio n. 1
0
    //-----------------------------------------------------------------------------------------
    // 状态的静态调用
    //-----------------------------------------------------------------------------------------
    public static CIdleAI Instance()
    {
        if (m_instance == null)
        {
            m_instance = new CIdleAI();
        }

        return(m_instance);
    }
Esempio n. 2
0
    public CAIController(CNPCEntity pNPC)
    {
        m_pOwner        = pNPC;
        m_pProto        = m_pOwner.m_pProto;
        m_pTarget       = null;
        m_eCurAIState   = AIStateType.AIST_Idle;
        m_pCurrentState = CIdleAI.Instance();
        m_pTransition   = new GuardTransition();

        m_GameObject = m_pOwner.gameObject;
        m_vBornPos   = m_GameObject.transform.position;
    }
Esempio n. 3
0
    /// ----------------------------------------------------------------------------------
    /// <summary>
    /// AI 状态实体
    /// </summary>
    private CAIStats GetStateByType(AIStateType eStateType)
    {
        if (eStateType == AIStateType.AIST_Idle)
        {
            return((CAIStats)CIdleAI.Instance());
        }

        else if (eStateType == AIStateType.AIST_Pursue)
        {
            return((CAIStats)CPursueAI.Instance());
        }

        else if (eStateType == AIStateType.AIST_Attack)
        {
            return((CAIStats)CAttackAI.Instance());
        }

        else if (eStateType == AIStateType.AIST_Return)
        {
            return((CAIStats)CReturnAI.Instance());
        }

        return(null);
    }