Beispiel #1
0
    public static GameObject Spawn(GameObject original, Vector3 position, Quaternion rotation)
    {
        if (original == null)
        {
            Debug.LogWarning("Tried to instantiate a null object.");
            return(null);
        }

        Queue <GameObject> pool = _instance.GetPool(original);

        if (pool.Count == 0)
        {
            GameObject obj = GameObject.Instantiate(original, position, rotation) as GameObject;
            obj.transform.parent = _instance._containerActive;
            return(obj);
        }
        else
        {
            GameObject obj = pool.Dequeue();
            if (obj != null)
            {
                obj.transform.position = position;
                obj.transform.rotation = rotation;
                obj.transform.parent   = _instance._containerActive;
                obj.SetActive(true);
            }
            else
            {
                Debug.LogWarning(string.Format("We had a null object in our queue. ({0:s})", original.name));
            }
            return(obj);
        }
    }