Example #1
0
    private GameObject GetGameObject(string prefabFullPath, Vector3 pos, Quaternion rot, bool useRotation, enResourceType resourceType, out bool isInit)
    {
        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);
        }
        PooledGameObjectScript pooledGameObjectScript = null;

        while (queue.Count > 0)
        {
            pooledGameObjectScript = queue.Dequeue();
            if (pooledGameObjectScript != null && pooledGameObjectScript.gameObject != null)
            {
                pooledGameObjectScript.gameObject.transform.SetParent(null, true);
                pooledGameObjectScript.gameObject.transform.position   = pos;
                pooledGameObjectScript.gameObject.transform.rotation   = rot;
                pooledGameObjectScript.gameObject.transform.localScale = pooledGameObjectScript.defaultScale;
                break;
            }
            pooledGameObjectScript = null;
        }
        if (pooledGameObjectScript == null)
        {
            pooledGameObjectScript = CreateGameObject(prefabFullPath, pos, rot, useRotation, resourceType, text);
        }
        if (pooledGameObjectScript == null)
        {
            isInit = false;
            return(null);
        }
        isInit = pooledGameObjectScript.isInit;
        pooledGameObjectScript.OnGet();
        return(pooledGameObjectScript.gameObject);
    }