๐ 24.04.11
์์ ํ์ผ์ JSON ํ์ผ๋ก ๋ฐ๊พธ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ค.
๐ Excel2Json
ํ๋ก๊ทธ๋จ์ ๋ค์ด ๋ฐ๊ณ ํด๋น ํด๋์ output ํด๋๋ฅผ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ js ํด๋์ ๊ฐ์ ์์น์ ์์์ ๋ง์ถฐ ์์ฑํ ์์ ํ์ผ์ ๋ฃ๊ณ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ฉด, output ํด๋์ json ํ์ผ์ด ์์ฑ๋๋ค.
ํด๋น json ํ์ผ์ Resource ํ์ผ์ ๋ฃ๊ณ ์คํฌ๋ฆฝํธ๋ก ๋ถ๋ฌ์์ ์ฌ์ฉํ ์ ์๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LevelDatas
{
public int level;
public int requiredExp;
public int atk;
public int def;
public int maxHp;
}
public class PlayerLevelDatabase
{
public List<LevelDatas> levelDatas;
public Dictionary<int, LevelDatas> levelDic = new();
public void Initialize()
{
foreach (LevelDatas data in levelDatas)
{
levelDic.Add(data.level, data);
}
}
public LevelDatas GetLevelDataByKey(int level)
{
if (levelDic.ContainsKey(level))
return levelDic[level];
return null;
}
}
public class PlayerDataManager : MonoBehaviour
{
public PlayerLevelDatabase playerLevelDatabase;
private void Awake()
{
TextAsset LevelJson = Resources.Load<TextAsset>("JSON/LevelDatas");
if (LevelJson != null)
{
string json = LevelJson.text;
playerLevelDatabase = JsonUtility.FromJson<PlayerLevelDatabase>(json);
playerLevelDatabase.Initialize();
}
else
{
Debug.Log("Level JSON NULL");
}
}
public void SetPlayerLevel()
{
Player player = GameManager.Instance.player;
if (player != null)
{
int level = player.Data.StatusData.Level;
LevelDatas data = playerLevelDatabase.GetLevelDataByKey(level);
player.Data.StatusData.LoadLevelData(data);
}
}
}
ํ์์ ์ ์งํ๊ณ ์ปฌ๋ผ๋ช ๋ง ๋ค๋ฅด๊ฒ ์ ์ํ๋ฉด ๋๋ค.