유니티
[Unity] 유니티 - JSON 데이터 저장, 불러오기
simstealer
2022. 9. 29. 16:34
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
// 파일 저장, 로드를 위함
using System.IO;
public class SMS_JSONTest : MonoBehaviour
{
// ###############################################
// NAME : Simstealer
// MAIL : minsub4400@gmail.com
// ###############################################
// 케릭터 정보
[Serializable]
public struct PlayerData
{
public string Name;
public string Level;
public bool isDead;
public string[] Items;
}
// 플레이어 정보 객체 생성
public PlayerData playerData;
// 유니티의 데이터를 Json파일로 저장하기
[ContextMenu("To Json Data")] // 유니티 인스펙터 확장메뉴에서 나오는 메뉴나오게 하는 것
private void SavePlayerDataToJson()
{
// playerData를 Json파일로 변환한다.
// JsonUtility.ToJson(playerData, true); true는 Json파일을 보기 좋게 저장해준다.
string jsonData = JsonUtility.ToJson(playerData, true);
// 파일을 유니티 프로젝트 경로에 저장하기(윈도우)
string path = Application.dataPath + "/playerData.json";
// 경로 구분자가 확실치 않은 경우에는 아래와 같이 사용한다. (애플 등)
//string path = Path.Combine(Application.dataPath, "/playerData.json");
// 파일로 저장 (경로, 저장할 문자열(데이터, 파일))
File.WriteAllText(path, jsonData);
}
// Json파일를 유니티 데이터에 로드하기
[ContextMenu("From Json Data")]
private void LoadPlayerDataToJson()
{
// 파일 경로를 지정해준고
string path = Application.dataPath + "/playerData.json";
// Json파일을 읽어서 가져온다
string jsonData = File.ReadAllText(path);
// Json 데이터 변환하기 <PlayerData> : 변환하고 싶은 타입을 넣어준다
playerData = JsonUtility.FromJson<PlayerData>(jsonData);
}
}