Статьи / C# (sharp)


Unity3D load json to object

C# скрипт вешаем на EmptyObject в сцене. JSON файл должен быть по адресу /PathToGame/Assets/StreamingAssets/dialog_en.json в PC os (в android и iOS в другом месте).

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class GameManager : MonoBehaviour {

void Start () {
//read textdata from file
string fileName = "/stati/c_sharp/unity3d_load_json_to_object379/dialog_en.json";
string filePath = Path.Combine (Application.streamingAssetsPath, fileName);
if (File.Exists (filePath)) {
string dataStr = File.ReadAllText (filePath);

//parse
EventData ld = JsonUtility.FromJson (dataStr);
Debug.Log( ld.events[1].name );
} else
{
Debug.LogError ("Cannot load file!");
}
}
}

//array of events
[System.Serializable]
public class EventData
{
public EventItem[] events;
}

[System.Serializable]
public class EventItem
{
public string name;
public string value;
}


Строение json файла придется описать вручную, в примере выше это EventData. Unity не умеет грузить json и создавать объект для него на лету.