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(); } }