Beispiel #1
0
        public GameObject Spawn(Vector3 position, Quaternion rotation)
        {
            GameObject instance;

            if (inactiveObjects.Count == 0)
            {
                instance      = Object.Instantiate(prefab, position, rotation);
                instance.name = prefab.name + " (" + idCount++ + " )";
                PoolEntry.Create(instance, this);
            }
            else
            {
                instance = inactiveObjects.Pop();
                if (instance == null)
                {
                    Spawn(position, rotation);
                }
            }

            if (instance == null)
            {
                Debug.Log("GameObject \"instance\" was null.");
                return(null);
            }

            instance.transform.position = position;
            instance.transform.rotation = rotation;
            instance.SetActive(true);

            return(instance);
        }