그냥 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로 바꾸면 된다