From c68676bc1be7e925bbe50fc5ebd8078d71096d05 Mon Sep 17 00:00:00 2001 From: Jae Hyeon Cho <whwogus1983@ajou.ac.kr> Date: Thu, 21 Dec 2023 19:17:55 +0900 Subject: [PATCH] Upload New File --- .../NumberPool.cs" | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 "\354\265\234\354\242\205\354\240\234\354\266\234\353\254\274/NumberPool.cs" diff --git "a/\354\265\234\354\242\205\354\240\234\354\266\234\353\254\274/NumberPool.cs" "b/\354\265\234\354\242\205\354\240\234\354\266\234\353\254\274/NumberPool.cs" new file mode 100644 index 0000000..e7f4835 --- /dev/null +++ "b/\354\265\234\354\242\205\354\240\234\354\266\234\353\254\274/NumberPool.cs" @@ -0,0 +1,49 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class NumberPool : MonoBehaviour +{ + public static NumberPool Instance + { + get + { + if (_instance == null) _instance = FindObjectOfType<NumberPool>(); + return _instance; + } + } + + private static NumberPool _instance; + + [SerializeField] List<GameObject> pooledNumbers = new List<GameObject>(); + + public GameObject GetPooledObject(int numberToGet, Transform targetNode, bool wantActive) + { + for (int i = 0; i < pooledNumbers.Count; i++) + { + GameObject currentNumber = pooledNumbers[i]; + + if (currentNumber.name.Equals(numberToGet.ToString()) && !currentNumber.GetComponent<Number>().isUsing) + { + currentNumber.GetComponent<Number>().isUsing = true; + currentNumber.SetActive(wantActive); + currentNumber.transform.SetParent(targetNode); + currentNumber.transform.localScale = Vector3.one; + currentNumber.transform.localPosition = Vector3.zero; + return currentNumber; + } + } + + GameObject newBlock = Instantiate(Resources.Load("Nodes/" + numberToGet.ToString()), targetNode) as GameObject; + newBlock.name = numberToGet.ToString(); + pooledNumbers.Add(newBlock); + return newBlock; + } + + public void SetPooledObject(Transform numberToPool) + { + numberToPool.GetComponent<Number>().isUsing = false; + numberToPool.gameObject.SetActive(false); + numberToPool.SetParent(transform); + } +} -- GitLab