그냥 10개의 버튼에 차례대로 index값을 주고 넘어가야하나 싶다. 전시장에서 사용했던 방법과 동일하다

각 10개의 버튼에 index값을 주고 그 index값을 최근 질문을 저장한 배열의 index로 사용하면 된다.

질문을 string으로 불러오는 배열의 이름이 PrevQuestionString2 라고 해보자

그리고 각 버튼의 index를 각각 삽입해준다.

그러면 PrevQuestionString2[index]로 원하는 질문을불러올 수 있다.

데이터를 받는 곳 = DataManager와 비슷한 

public static LetterListManager instance;

public int LetterNum;
public string LetterText;

public int nowLetterIndex;

public void Awake()
{
	``````if(instance == null)
        {
            instance = this;
        }
        else if(instance != this)
        {
            Destroy(instance.gameObject);
        }
        DontDestroyOnLoad(this.gameObject);
        #endregion
}

띄우는 곳

using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;

namespace Letter
{
    public class PrevMailLetter : MonoBehaviour
    {
        public List<string> previousQuestionsString2 = new List<string>();
        public int QuestionsStringNum;
				public Text[] LetterNum;
				public Text[] LetterText;

        // Public 인스턴스 변수를 생성
        public RandomLetter randomLetter;

        void Start()
        {
            // randomLetter 인스턴스를 외부에서 받아옴
            randomLetter = FindObjectOfType<RandomLetter>()
            previousQuestionsString2 = randomLetter.previousQuestionsString;

            //panelPrefab = Resources.Load<GameObject>("Canvas_OnClickMailLetter");
     
            
            
            
            if (previousQuestionsString2 == null)
            {
                Debug.Log("previousQuestionsString2이 비어있습니다");
            }
            else
            {
                
                Debug.Log("previousQuestionsString2이 비어있지 않습니다");
                Debug.Log(previousQuestionsString2.Count);

            }
						
						

            MakePrevList();
        }

        

        //버튼을 생성해야되는데...
        void MakePrevList()
        {
            for (int i = previousQuestionsString2.Count - 1; i >= 0; i--)
            {
                QuestionsStringNum = i;
                buttonText.text = previousQuestionsString2[i]+"질문의 번호"+QuestionsStringNum;

                int index = i;
                button.GetComponent<Button>().onClick.AddListener(() => OnButtonClick(previousQuestionsString2[index]));
            }
        }
        //OnButtonClick=BtnClick ;버튼 눌렀을때
        public void OnButtonClick(string question)
        {
            // 패널 생성
            GameObject panel = Instantiate(panelPrefab);
            // 질문을 표시할 Text 컴포넌트 찾기
            panel.GetComponentInChildren<Text>().text = question;
            
        }
    }
}

대공사를 해야될거같다

bool[] PrevLetterBool = new bool[10];

void Start()
    {       
        //슬롯별로 저장된 데이터가 있는지 확인 = path에 파일이 있는지 확인 = [path+nowSlot]
        for(int i = 9; i>=0; i--)
        {
            
            //파일의 데이터 존재 유무를 path로 가서 확인 = path+nowSlot
            if(previousQuestionsString2[i] != null)
            {
                //있으면 true
                savefile[i] = true;
                //슬롯 번호 가져오기
                DataManager.instance.nowLetterIndex = i;
                //LetterNum[i].text = DataManager.instance.nowPlayer.LetterNum+"번째 편지";
                LetterText[i].text = previousQuestionsString2[i];
                
            }
            else
            {
                slotText[i].text = "아직 비어있어요";
            }
        }
        
    }

버튼에 index값을 주고 구현을 했긴 했는데.. 생각해보니 이 모든건 일단 db에서 데이터를 받아온 다음에 해야할거 같다

일단 띄우는 것도 db 에서 받아오면 된다.

List는 in_active의 관계와는 상관없이 띄우기만 하면 된다. 그리고 bool값으로 false인 기본 상태에서 true로 바꾸면 된다

  1. RandomLetter에서 질문 코드 보내기