void DrawMenuGeneral(List <string> listToDraw) { //return all to the pool oldSlots.AddRange(simpleMenuDisplay.menuSlots); foreach (var s in oldSlots) { s.gameObject.SetActive(false); } simpleMenuDisplay.menuSlots.Clear(); Vector3 firstSlotPos = slotTemplate.transform.position; Vector3 offsetByAmount = new Vector3(0, spacing, 0f); slotTemplate.gameObject.SetActive(false); //MAKE SURE SLOT TEMPLATE IS NOT PART OF THE MENU SLOTS< OR THE INITIAL POSITION WILL JUMP! for (int i = 0; i < listToDraw.Count; i++) { SimpleMenuSlot slotGFX = CreateOrRecycleSlot(); slotGFX.transform.parent = slotTemplate.transform.parent; slotGFX.transform.position = firstSlotPos + (offsetByAmount * i); simpleMenuDisplay.menuSlots.Add(slotGFX); slotGFX.GetComponent <TextMeshProUGUI>().SetText(listToDraw[i]); slotGFX.gameObject.SetActive(true); } simpleMenuDisplay.gameObject.SetActive(true); }
SimpleMenuSlot CreateOrRecycleSlot() { SimpleMenuSlot nSlot = null; if (oldSlots.Count > 0) { nSlot = oldSlots[0]; oldSlots.Remove(nSlot); return(nSlot); } nSlot = Instantiate(slotTemplate) as SimpleMenuSlot; return(nSlot); }