본문 바로가기
개발/C#

유니티 C# Json 형태 리소스 폴더에 CSV 저장 불러오기 간단 구현

by SPNK 2024. 2. 18.
반응형
  • Json 사용
using UnityEngine;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.IO;

public class CSVManager : MonoBehaviour
{
    [System.Serializable]
    public class YourDataClass
    {
        // CSV 데이터 구조를 나타내는 필드들을 추가합니다.
        public string Name; // 이름
        public int Score;   // 점수
        // 필요한 만큼 더 많은 필드를 추가하세요.
    }

    // 데이터를 저장할 리스트 예시
    private List<YourDataClass> dataList = new List<YourDataClass>();

    // 데이터를 JSON 파일로 Resources 폴더에 저장합니다.
    public void SaveDataToJSON()
    {
        string json = JsonConvert.SerializeObject(dataList, Formatting.Indented);
        string filePath = Path.Combine(Application.dataPath, "Resources/data.json");

        File.WriteAllText(filePath, json);
        Debug.Log("데이터 저장 완료: " + filePath);
    }

    // JSON 파일에서 데이터를 로드합니다.
    public void LoadDataFromJSON()
    {
        string filePath = Path.Combine(Application.dataPath, "Resources/data.json");

        if (File.Exists(filePath))
        {
            string json = File.ReadAllText(filePath);
            dataList = JsonConvert.DeserializeObject<List<YourDataClass>>(json);
            Debug.Log("데이터 로드 완료: " + filePath);

            // 로드된 데이터로 무언가를 수행합니다.
            foreach (var data in dataList)
            {
                Debug.Log("이름: " + data.Name + ", 점수: " + data.Score);
            }
        }
        else
        {
            Debug.LogError("경고: 경로 " + filePath + "에 JSON 파일이 없습니다.");
        }
    }
}

 

 

  • TextAsset 사용
using UnityEngine;
using System.Collections.Generic;
using System.IO;

public class CSVManager : MonoBehaviour
{
    [System.Serializable]
    public class YourDataClass
    {
        // CSV 데이터 구조를 나타내는 필드들을 추가합니다.
        public string Name; // 이름
        public int Score;   // 점수
        // 필요한 만큼 더 많은 필드를 추가하세요.
    }

    // 데이터를 저장할 리스트 예시
    private List<YourDataClass> dataList = new List<YourDataClass>();

    // 데이터를 JSON 파일로 Resources 폴더에 저장합니다.
    public void SaveDataToJSON()
    {
        string json = JsonUtility.ToJson(dataList);
        TextAsset textAsset = new TextAsset(json);
        string filePath = "Assets/Resources/data.json";
        AssetDatabase.CreateAsset(textAsset, filePath);
        AssetDatabase.SaveAssets();
        Debug.Log("데이터 저장 완료: " + filePath);
    }

    // JSON 파일에서 데이터를 로드합니다.
    public void LoadDataFromJSON()
    {
        TextAsset textAsset = Resources.Load<TextAsset>("data");
        
        if (textAsset != null)
        {
            string json = textAsset.text;
            dataList = JsonUtility.FromJson<List<YourDataClass>>(json);
            Debug.Log("데이터 로드 완료");

            // 로드된 데이터로 무언가를 수행합니다.
            foreach (var data in dataList)
            {
                Debug.Log("이름: " + data.Name + ", 점수: " + data.Score);
            }
        }
        else
        {
            Debug.LogError("경고: Resources 폴더에서 data.json 파일을 찾을 수 없습니다.");
        }
    }
}

 

 


참고할만 한 글

 

유니티 C# CSV 파일 저장, 불러오기 Read, Write 간단 사용법

파일 저장 경로 불러오는 코드 작성 using System.IO; using UnityEngine; public static class SystemPath { public static string GetPath(string fileName) { string path = GetPath(); return Path.Combine(GetPath(), fileName); } public static string G

parksh3641.tistory.com

 

반응형

댓글