Tengo 4 botones y cada uno de estos botones activa una imagen (consulte el enlace - Apilamiento). Se adjunta un script a los 4 botones. Hay 4 marcadores de posición. Estoy usando un enfoque de pila para apilar imágenes una tras otra. Es decir, si el primer espacio está vacío, la imagen va allí. El botón tiene dos funciones, agregar imagen y quitar imagen. Si se elimina la imagen de la primera ranura, la imagen de la segunda ranura se coloca en la primera ranura y la imagen de la tercera ranura se coloca en la segunda ranura. ¿Cómo agrego push and pop a este escenario?
Editar: lo intenté con List pero estoy perdido. ¿Podría haber un enfoque más simple?
public class ActivateStackImages : MonoBehaviour { public GameObject ImageGameObject_To_Add; //Each instance of this script has unique image public Vector3[] PositionOfImages; //4 positions private ActivateStackImages [] activateImages; //Script added to 4 buttons public bool Slot_1_Filled = false; public bool Slot_2_Filled = false; public bool Slot_3_Filled = false; public bool Slot_4_Filled = false; public bool isImageAdded = false; private void Awake () { activateImages= FindObjectsOfType (typeof (ActivateStackImages )) as ActivateStackImages []; } public void ActivateGraph () { if (this.isImageAdded == false) { for (int i = 0; i < activateImages.Length; i++) { if (activateImages[i].Slot_1_Filled == false) { ImageGameObject_To_Add.SetActive (true); ImageGameObject_To_Add.GetComponent<RectTransform> ().anchoredPosition = PositionOfImages[0]; activateImages[i].Slot_1_Filled = true; } else if (activateImages[i].Slot_2_Filled == false) { ImageGameObject_To_Add.SetActive (true); ImageGameObject_To_Add.GetComponent<RectTransform> ().anchoredPosition = PositionOfImages[2]; activateImages[i].Slot_2_Filled = true; } else if (activateImages[i].Slot_3_Filled == false) { ImageGameObject_To_Add.SetActive (true); ImageGameObject_To_Add.GetComponent<RectTransform> ().anchoredPosition = PositionOfImages[2]; activateImages[i].Slot_3_Filled = true; } else if (activateImages[i].Slot_4_Filled == false) { ImageGameObject_To_Add.SetActive (true); ImageGameObject_To_Add.GetComponent<RectTransform> ().anchoredPosition = PositionOfImages[3]; activateImages[i].Slot_4_Filled = true; } } this.isImageAdded = true; } else if (this.isImageAdded == true) { ImageGameObject_To_Add.SetActive (false); } } }