コード例 #1
0
ファイル: Pool.cs プロジェクト: kirivasile/explosion
        Recyclable InstantiateNewObject(Vector3 position, Quaternion rotation)
        {
            Recyclable obj = Instantiate <Recyclable>(objectToPool, position, rotation, transform);

            obj.onRecycle += Recycle;
            obj.gameObject.SetActive(false);

            objects.Add(obj);
            return(obj);
        }
コード例 #2
0
ファイル: Pool.cs プロジェクト: kirivasile/explosion
 void Recycle(Recyclable recycledObj)
 {
     if (objects.Contains(recycledObj))
     {
         recycledObj.SetActive(false);
     }
     else
     {
         Debug.Log("Attempting to recycle foreign object");
     }
 }
コード例 #3
0
ファイル: Recyclable.cs プロジェクト: kirivasile/explosion
 protected void Recycle(Recyclable obj)
 {
     if (onRecycle != null)
     {
         onRecycle(obj);
     }
     else
     {
         Debug.Log("No subscribers onRecycle");
     }
 }
コード例 #4
0
ファイル: Pool.cs プロジェクト: kirivasile/explosion
        public Recyclable Get(Vector3 position, Quaternion rotation)
        {
            foreach (Recyclable obj in objects)
            {
                if (!obj.activeSelf)
                {
                    obj.transform.position = position;
                    obj.transform.rotation = rotation;

                    obj.SetActive(true);
                    return(obj);
                }
            }

            Recyclable newObj = InstantiateNewObject(position, rotation);

            newObj.SetActive(true);
            return(newObj);
        }