Unity에서 JSON 파일 로드(SimpleJSON편)
JSON 파서 다운로드
JSON을 로드하는 파서를 포함합니다. 사용하는 것은 SimpleJSON입니다.
SimpleJSON - Unify Community Wiki
링크에서 SimpleJSON.zip을 다운로드합니다.
SimpleJSON을 프로젝트로 가져오기
SimpleJSON.zip을 압축 해제하면 안에 SimpleJSON.unitypackage라는 Unity Package가 들어 있습니다.
메뉴 > Asset > Import Package > Custom Package(또는 Project 뷰에서 마우스 오른쪽 버튼 > Import Package > Custom Package)를 선택합니다.
SimpleJSON.unitypackage를 선택하여 프로젝트에 SimpleJSON.unitypackage를 가져옵니다.
소스 코드 작성
SimpleJSON을 사용하여 JSON 파일을 읽는 스플릿을 작성합니다.
Scene의 게임 오브젝트에 Add Component로 스크립트를 추가합니다.
(이번에는 빈 게임 객체를 만들고 스크립트를 추가했습니다.)
Project 뷰에서 Create > C# Script로 스플릿을 만듭니다.
파일명은 「JSONSample.cs」라고 했습니다.
JSONSample.cs
using UnityEngine;
using System.Collections;
using System.IO; //System.IO.FileInfo, System.IO.StreamReader, System.IO.StreamWriter
using System; //Exception
using System.Text; //Encoding
using SimpleJSON;
public class JSONSample : MonoBehaviour {
public string jsonFileName;
private JSONNode json;
// Update is called once per frame
void Update () {
// スペースキーを押したらファイル読み込みをする
if (Input.GetKeyDown (KeyCode.Space)) {
ReadFile ();
}
}
// 読み込んだ情報をGUIとして表示
void OnGUI()
{
if (json != null) {
// キーワードがnameの値を取り出す
GUI.TextArea (new Rect (0, 0, Screen.width, Screen.height), "name:" + json["name"]);
}
}
// 読み込み関数
void ReadFile(){
string fileText = "";
// FileReadTest.txtファイルを読み込む
FileInfo fi = new FileInfo(Application.dataPath + "/" + jsonFileName);
try {
// 一行毎読み込み
using (StreamReader sr = new StreamReader(fi.OpenRead(), Encoding.UTF8)){
fileText = sr.ReadToEnd();
// JSONをパースして値を取り出す
json = JSONNode.Parse(fileText);
}
} catch (Exception e){
// 改行コード
fileText += "\n";
}
}
}
JSON 파일 지정
스크립트를 Inspector에서 볼 때 JSON 파일 이름을 지정할 수 있어야 합니다. JSON 파일을 프로젝트로 가져와 파일 이름을 지정합니다.
샘플에서 사용하는 JSON 파일은 다음과 같습니다.
sample.json
{"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-ball","snowboard"]}],"address":{}}
실행 결과
Play 버튼을 눌러 실행하고 스페이스바를 누르면 다음 화면이 표시되고 JSON 파일에서 지정한 데이터가 로드된 것을 확인할 수 있으면 성공입니다.
참고 사이트
Unity에서 외부 데이터 로드 - Qiita
SimpleJSON - Unify Community Wiki
소스 코드
소스 코드는 아래 링크에서 다운로드할 수 있습니다.
UnityExample/JSONSample - GitHub
Reference
이 문제에 관하여(Unity에서 JSON 파일 로드(SimpleJSON편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroyuki7/items/202a234607fb1b3b950f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using UnityEngine;
using System.Collections;
using System.IO; //System.IO.FileInfo, System.IO.StreamReader, System.IO.StreamWriter
using System; //Exception
using System.Text; //Encoding
using SimpleJSON;
public class JSONSample : MonoBehaviour {
public string jsonFileName;
private JSONNode json;
// Update is called once per frame
void Update () {
// スペースキーを押したらファイル読み込みをする
if (Input.GetKeyDown (KeyCode.Space)) {
ReadFile ();
}
}
// 読み込んだ情報をGUIとして表示
void OnGUI()
{
if (json != null) {
// キーワードがnameの値を取り出す
GUI.TextArea (new Rect (0, 0, Screen.width, Screen.height), "name:" + json["name"]);
}
}
// 読み込み関数
void ReadFile(){
string fileText = "";
// FileReadTest.txtファイルを読み込む
FileInfo fi = new FileInfo(Application.dataPath + "/" + jsonFileName);
try {
// 一行毎読み込み
using (StreamReader sr = new StreamReader(fi.OpenRead(), Encoding.UTF8)){
fileText = sr.ReadToEnd();
// JSONをパースして値を取り出す
json = JSONNode.Parse(fileText);
}
} catch (Exception e){
// 改行コード
fileText += "\n";
}
}
}
스크립트를 Inspector에서 볼 때 JSON 파일 이름을 지정할 수 있어야 합니다. JSON 파일을 프로젝트로 가져와 파일 이름을 지정합니다.
샘플에서 사용하는 JSON 파일은 다음과 같습니다.
sample.json
{"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-ball","snowboard"]}],"address":{}}
실행 결과
Play 버튼을 눌러 실행하고 스페이스바를 누르면 다음 화면이 표시되고 JSON 파일에서 지정한 데이터가 로드된 것을 확인할 수 있으면 성공입니다.
참고 사이트
Unity에서 외부 데이터 로드 - Qiita
SimpleJSON - Unify Community Wiki
소스 코드
소스 코드는 아래 링크에서 다운로드할 수 있습니다.
UnityExample/JSONSample - GitHub
Reference
이 문제에 관하여(Unity에서 JSON 파일 로드(SimpleJSON편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroyuki7/items/202a234607fb1b3b950f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Unity에서 JSON 파일 로드(SimpleJSON편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroyuki7/items/202a234607fb1b3b950f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)