Exemple #1
0
    public void SpawnCreature(AIType aType, int aNum)
    {
        if (m_AIs == null)
        {
            m_AIs = new List <IAIBehaviour>();
        }

        for (int i = 0; i < aNum; ++i)
        {
            GameObject gO = null;

            switch (aType)
            {
            case AIType.FLOATY_FRED:
                gO = Instantiate(m_FloaterPrefab);
                break;

            case AIType.SUICIDE_SAM:
                gO = Instantiate(m_RunnerPrefab);
                break;

            default:
                Debug.Log("BAD AITYPE, " + aType + ", creature not spawned");
                return;
            }

            IAIBehaviour aIBehaviour = gO.GetComponent(typeof(IAIBehaviour)) as IAIBehaviour;
            //Object test = aIBehaviour as Object;
            if (aIBehaviour == null)
            {
                Debug.Log("creature not spawned with IAIBehaviour interface");
                return;
            }

            if (m_AIs == null)
            {
                Debug.Log("list null!?");
                return;
            }

            m_AIs.Add(aIBehaviour);

            aIBehaviour.AssignPlayerReference(m_GameController.GetPlayerReference());
            aIBehaviour.Reset();
        }
    }