Exemplo n.º 1
0
 private static void EnsureLookup(bool init)
 {
     if (AIManager._aiLookup != null)
     {
         return;
     }
     lock (AIManager.initLock)
     {
         if (AIManager._aiLookup == null)
         {
             AIManager._aiLookup = new Dictionary <Guid, AIManager.AIData>();
         }
         else
         {
             return;
         }
     }
     AIStorage[] aIStorageArray = Resources.LoadAll <AIStorage>("ApexAIStorage");
     for (int i = 0; i < (int)aIStorageArray.Length; i++)
     {
         AIManager.AIData aIDatum = new AIManager.AIData()
         {
             storedData = aIStorageArray[i]
         };
         AIManager._aiLookup.Add(new Guid(aIDatum.storedData.aiId), aIDatum);
         if (init)
         {
             AIManager.ReadAndInit(aIDatum);
         }
     }
 }
Exemplo n.º 2
0
        private static void ReadAndInit(AIManager.AIData data)
        {
            List <IInitializeAfterDeserialization> initializeAfterDeserializations = new List <IInitializeAfterDeserialization>();

            try
            {
                data.ai      = SerializationMaster.Deserialize <UtilityAI>(data.storedData.configuration, initializeAfterDeserializations);
                data.ai.name = data.storedData.name;
            }
            catch (Exception exception1)
            {
                Exception exception = exception1;
                UnityEngine.Debug.LogWarning(string.Format("Unable to load the AI: {0}. Additional details: {1}\n{2}", data.storedData.name, exception.Message, exception.StackTrace));
                return;
            }
            int count = initializeAfterDeserializations.Count;

            for (int i = 0; i < count; i++)
            {
                initializeAfterDeserializations[i].Initialize(data.ai);
            }
        }