제이슨의 데이터를 가져오는 것은 성공하고
UI를 만들었으나 TMP_Text에 아이디를 가져오는 와중에
Null이 나왔는데 어찌저찌 만지다 보니 해결은 되었지만,
개운하지 않은 이 찝찝한 기분..
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class SkillManager : MonoBehaviour
{
public static SkillManager instance; //싱글톤
public Button levelUpBtn;
public Button closeBtn;
public GameObject selectSkillPopUp;
public SkillData[] skillDatas;
private void Awake() //싱글톤
{
if(instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
}else if(instance != null)
{
Destroy(this.gameObject);
}
}
//public static SkillManager Instance
//{
// get
// {
// if (null == instance)
// {
// return null;
// }
// return instance;
// }
//}
public void Start()
{
OnClickLevelUpBtn();
OnClickCloseBtn();
TextAsset asset = Resources.Load<TextAsset>("data/skills_data");
string json = asset.text;
Debug.Log(json);
skillDatas = JsonConvert.DeserializeObject<SkillData[]>(json);
foreach (SkillData data in skillDatas)
{
Debug.Log(data.id);
//문자열 => 객체 (역직렬화) 각 객체를 돌며 id를 잘 찾는지 확인
}
}
public SkillData GetDataById(int id)
{
SkillData foundSkillData = null;
for(int i = 0; i < skillDatas.Length; i++)
{
SkillData skillData = this.skillDatas[i];
if(skillData.id == id)
{
foundSkillData = skillData;
break;
}
}
return foundSkillData;
}
public void OnClickLevelUpBtn()
{
levelUpBtn.onClick.AddListener(() =>
{
selectSkillPopUp.SetActive(true);
});
}
public void OnClickCloseBtn()
{
closeBtn.onClick.AddListener(() =>
{
selectSkillPopUp.SetActive(false);
});
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SkillData
{
public int id;
public string name;
public string sprite_name;
public string desc;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class SelectSkillPopUp : MonoBehaviour
{
public TMP_Text skillId;
void Start()
{
skillId.text = SkillManager.instance.GetDataById(103).id.ToString();
}
}
'Study > Unity' 카테고리의 다른 글
[Unity] 클릭시 색상 변경 및 Select버튼 On/Off (0) | 2024.06.09 |
---|---|
[Unity] Random Skill Button & Select Button (0) | 2024.06.08 |
[Unity] 클릭시 json에 있는 파일들 랜덤으로 가져오기 (0) | 2024.06.07 |
[Unity] Coroutine의 null 과 break의 차이 (0) | 2024.06.07 |
[Unity] Resources 폴더와 역직렬화 (1) | 2024.06.04 |