Example #1
0
    public void PrepareGameObject(string prefabFullPath, enResourceType resourceType, int amount, bool assertNull = true)
    {
        string text = FileManager.EraseExtension(prefabFullPath);
        Queue <PooledGameObjectScript> queue = null;

        if (!m_pooledGameObjectMap.TryGetValue(text.JavaHashCodeIgnoreCase(), out queue))
        {
            queue = new Queue <PooledGameObjectScript>();
            m_pooledGameObjectMap.Add(text.JavaHashCodeIgnoreCase(), queue);
        }
        if (queue.Count >= amount)
        {
            return;
        }
        amount -= queue.Count;
        for (int i = 0; i < amount; i++)
        {
            PooledGameObjectScript pooledGameObjectScript = CreateGameObject(prefabFullPath, Vector3.zero, Quaternion.identity, false, resourceType, text);
            if (assertNull)
            {
                //DebugHelper.Assert(cPooledGameObjectScript != null, "Failed Create Game object from \"{0}\"", new object[]
                //{
                //    prefabFullPath
                //});
            }
            if (pooledGameObjectScript != null)
            {
                queue.Enqueue(pooledGameObjectScript);
                pooledGameObjectScript.gameObject.transform.SetParent(m_poolRoot.transform, true);
                pooledGameObjectScript.OnPrepare();
            }
        }
    }