public static void Initialize()
 {
     InstanceManagers.FastClear();
     GlobalAgentActive.Clear();
     OpenGlobalIDs.FastClear();
     PeakGlobalID = 0;
     foreach (FastStack <LSAgent> cache in CachedAgents.Values)
     {
         for (int j = 0; j < cache.Count; j++)
         {
             cache.innerArray [j].SessionReset();
         }
     }
 }
        public static void Initialize(GameObject[] agentObjects)
        {
            if (FirstInitializeStatic)
            {
                AgentCodes   = (AgentCode[])System.Enum.GetValues(typeof(AgentCode));
                CachedAgents = new FastStack <LSAgent> [AgentCodes.Length];
                AgentObjects = new GameObject[AgentCodes.Length];
                for (i = 0; i < AgentCodes.Length; i++)
                {
                    AgentObjects[(int)AgentCodes[i]] = agentObjects[i];
                }
                FirstInitializeStatic = false;
            }
            GlobalActiveAgents = new Dictionary <ushort, LSAgent> (1024);

            OpenGlobalIDs.FastClear();
            PeakGlobalID = 0;
            InstanceManagers.Clear();
        }