[Unity] 자체 제작 클래스를 요소로 한 정렬을 Json에 저장
[Unity] 자체 제작 클래스를 요소로 한 정렬을 Json에 저장
하고 싶은 일
· Unity에서 RPG를 제작할 때 외부 파일에 게임 정보(Play Status와 프로젝트 유지 등)를 보관하고 싶다.
• Excel을 입력한 정보를 Json 파일로 바꾸고 Json 파일 내의 정보를 Unity로 읽습니다.(추후 보기)
사이트 축소판 그림
다음 첫 번째 사이트의'성공 코드'를 참고하여 설치하였습니다.
그런데 왜 잘하지 못했는지 몰라서 두 번째 사이트를 참고해 수정했다.
소스 코드
저도 상술한 참고 사이트를 모방하여 인코딩을 해봤는데 도움이 되었으면 좋겠습니다.
test1.cs
using System.IO;
using UnityEngine;
// Jsonに出力する配列
// 配列は、UnityのJsonUtirityで直接管理できないため、配列をクラスのメンバーとして使用する。
[System.Serializable]
public class SaveData
{
public MainItemData[] item;
}
// 配列の要素としてのクラス
[System.Serializable]
public class MainItemData
{
public float x;
public float y;
}
public class test1 : MonoBehaviour
{
void Start()
{
SaveData save = new SaveData(); // SaveDataクラスをインスタンス化
save.item = new MainItemData[2]; // SaveDataクラスのitem配列を要素数2でインスタンス化
save.item[0] = new MainItemData(); // save.item[0]にMainItemDataクラスを格納する。
save.item[0].x = 1; // save.item[0]であるMainItemDataクラスのx、yにそれぞれ値を代入する。
save.item[0].y = 1;
save.item[1] = new MainItemData();
save.item[1].x = 2;
save.item[1].y = 2;
// Assets/Json/test.json (新規or上書きしたいJsonファイルのパスを指定する。)
string filePath = Application.dataPath + "/Json/test.json";
string json = JsonUtility.ToJson(save, true);
StreamWriter streamWriter = new StreamWriter(filePath);
streamWriter.Write(json); // writer.WriteLine(json);でもOK
streamWriter.Flush();
streamWriter.Close();
}
}
test.json
{
"item": [
{
"x": 1.0,
"y": 1.0
},
{
"x": 2.0,
"y": 2.0
},
]
}
Reference
이 문제에 관하여([Unity] 자체 제작 클래스를 요소로 한 정렬을 Json에 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tech_memorandum/articles/10c18b2e8b39ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)