์˜ค๋ธŒ์ ํŠธ ํ’€๋ง ์—ฐ์Šต์ค‘์ธ๋ฐ ์ด๋ฒˆ์— ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋žœ๋ค์œผ๋กœ ๋ฝ‘๋Š” ํ’€๋ง์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜๊ฑฐ๋“ 


๊ทผ๋ฐ ๊ฐ์ด ์•ˆ์žกํ˜€์„œ ๊ตฌ๊ธ€์—์„œ ๊ธ์–ด์™”๋Š”๋ฐ ๋ญ”๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ์ž‘๋™ํ•ด์„œ...

๋‚˜๋Š” ํ•ด์„์ด ์•ˆ๋œ๋‹คใ… ใ… 


public class objectPoolScript : MonoBehaviour

{

ย  ย  public GameObject[] robotParts;

ย  ย  public bool willGrow = true;


ย  ย  public List[] pooledObjects;


ย  ย  public GameObject GetPooledObject()

ย  ย  {

ย  ย  ย  ย  int randomIndex = Random.Range(0, pooledObjects.Length);

ย  ย  ย  ย ย 

ย  ย  ย  ย  if (willGrow)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  GameObject obj = (GameObject)Instantiate(robotParts[randomIndex]);

ย  ย  ย  ย  ย  ย  pooledObjects[randomIndex].Add(obj);

ย  ย  ย  ย  ย  ย  return obj;

ย  ย  ย  ย  }


ย  ย  ย  ย  return null;

ย  ย  }


ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย  pooledObjects = new List[robotParts.Length];

ย  ย  ย  ย  for (int i = 0; i

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  for (int j = 0; j

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  GameObject obj = (GameObject)Instantiate(robotParts[i]);

ย  ย  ย  ย  ย  ย  ย  ย  obj.SetActive(false);

ย  ย  ย  ย  ย  ย  ย  ย  pooledObjects[i] = new List();

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }


ย  ย  ย  ย  StartCoroutine(countTime());

ย  ย  }


ย  ย  IEnumerator countTime()

ย  ย  {

ย  ย  ย  ย  yield return new WaitForSeconds(3);

ย  ย  ย  ย  GetPooledObject().transform.position = new Vector3(23, 2.5f, 0);


ย  ย  ย  ย  StartCoroutine(countTime());

ย  ย  }

}


์ด๋ ‡๊ฒŒ ํ•ด๋†“๊ณ  ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ๋ฅผ ๋‹ค์„ฏ๊ฐœ๋กœ ์„ค์ •ํ–ˆ๊ฑฐ๋“ 

๊ทธ๋Ÿผ 3์ดˆ๋งˆ๋‹ค ๋‹ค์„ฏ๊ฐœ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋žœ๋ค์œผ๋กœ 23, 2.5, 0์— ์ƒ์„ฑ๋˜๊ธดํ•˜๋Š”๋ฐ

์–˜๊ฐ€ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋†“์€ 7๊ฐœ์งœ๋ฆฌ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ€์ ธ์˜ค๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ ๊ทธ๋•Œ๊ทธ๋•Œ ์ƒ์„ฑํ•ด์„œ ์“ฐ๋”๋ผ๊ณ 


๋งˆ์ง€๋ง‰์— GetPooledObject().transform.position์ด ์ž˜๋ชป๋œ๊ฑฐ๊ฐ™๊ธดํ•œ๋ฐ

์ €๋”ฐ๊ฐ€ ๋ญ๋ฅผ ๋„ฃ์–ด๋ด๋„ ๊ตฌํ˜„์ด ์ž˜ ์•ˆ๋ผ์„œ...

๊ฐ€์—พ์€ ์ค‘์ƒ์„ ๊ตฌ์ œํ•ด์ค˜ใ… ใ