using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrashMan : MonoBehaviour
{
/// <summary>
/// ایجاد کردن پول
/// </summary>
/// <param name="obj"></param>
/// <param name="pos"></param>
public void PoolInstance(GameObject obj, Transform pos)
{
if (IsTrashEmpty())
{
var spawn = Instantiate(obj);
spawn.transform.SetParent(transform);
}
UsePool(obj,pos);
}
/// <summary>
/// آیا سطل آشغال پره؟
/// </summary>
/// <returns></returns>
public bool IsTrashEmpty()
{
return transform.childCount == 0;
}
public void UsePool(GameObject obj, Transform pos)
{
transform.GetChild(0).transform.SetParent(pos);
}
/// <summary>
/// بنداز تو سطل آشغال
/// </summary>
/// <param name="obj"></param>
public void BackToPool(Transform obj)
{
obj.transform.SetParent(transform);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
public TrashMan trashMan;
public GameObject prefab;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
trashMan.PoolInstance(prefab,transform);
}
if (Input.GetKeyDown(KeyCode.T))
{
Debug.Log(transform.childCount);
List<Transform> Temp = new List<Transform>();
for (int i = 0; i < transform.childCount; i++)
{
Temp.Add(transform.GetChild(i));
}
Temp.ForEach(x => trashMan.BackToPool(x));
Temp.Clear();
}
}
}