- Home /
Question by
JeffreyReena · Apr 10, 2020 at 02:44 AM ·
javascriptscripting problemloading
How do i load my game data after being saved using Json
Hi Im new to unity. I am trying to save and load player data through JSON. My save method is working but I'm not able to load the saved data back. Here is my code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
[System.Serializable]
public class PlayerData
{
[Header("Player Data")]
public string username;
public string email;
}
public class DataManager : MonoBehaviour {
private static DataManager instance;
[SerializeField]
private PlayerData playerData;
public static PlayerData PlayerData {
get { return instance.playerData; }
}
private string jsonData;
private bool isPlaying;
void OnEnable() {
}
void OnDisable() {
}
void Awake() {
if (!instance) {
instance = this;
} else {
Destroy(this.gameObject);
}
DontDestroyOnLoad(this.gameObject);
}
private void Start() {
isPlaying = true;
ReadJsonData();
}
private void ReadJsonData(){
//TextAsset textAsset = Resources.Load ("PlayerData") as TextAsset;
//path = Application.persistentDataPath + "/PotionData.json";
instance.jsonData = File.ReadAllText(Application.persistentDataPath + "/PotionData.json");
instance.playerData = JsonUtility.FromJson<PlayerData> (instance.jsonData);
Debug.Log(playerData.email);
}
public static void WriteJson(){
if (instance.isPlaying) {
//string filePath = Path.Combine(Application.persistentDataPath + "/PotionData.json");
instance.jsonData = JsonUtility.ToJson (instance.playerData);
//File.WriteAllText ("Assets/Resources/PlayerData.txt", instance.jsonData);
File.WriteAllText (Application.persistentDataPath + "/PotionData.json", instance.jsonData);
Debug.Log ("JSON data overwritten successfully");
Debug.Log (instance.jsonData);
}else{
Debug.LogError ("JSON data overwrite only on play mode!");
}
}
public void Load()
{
ReadJsonData();
}
}
public enum SceneType {MainScene = 0, GameScene = 1}
Then I tried something other than that. but in this new code my Save data method works in unity editor but not working in build. In this new code data is not saved and loaded also. Below is the code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
[System.Serializable]
public class PlayerData
{
[Header("Player Data")]
public string username;
public string email;
}
public class DataManager : MonoBehaviour {
private static DataManager instance;
[SerializeField]
private PlayerData playerData;
public static PlayerData PlayerData {
get { return instance.playerData; }
}
private string jsonData;
private bool isPlaying;
void OnEnable() {
}
void OnDisable() {
}
void Awake() {
if (!instance) {
instance = this;
} else {
Destroy(this.gameObject);
}
DontDestroyOnLoad(this.gameObject);
}
private void Start() {
isPlaying = true;
ReadJsonData();
}
private void ReadJsonData(){
TextAsset textAsset = Resources.Load ("PlayerData") as TextAsset;
playerData = JsonUtility.FromJson<PlayerData> (textAsset.text);
Debug.Log(playerData.email);
}
public static void WriteJson(){
if (instance.isPlaying) {
instance.jsonData = JsonUtility.ToJson (instance.playerData);
File.WriteAllText ("Assets/Resources/PlayerData.txt", instance.jsonData);
Debug.Log ("JSON data overwritten successfully");
Debug.Log (instance.jsonData);
}else{
Debug.LogError ("JSON data overwrite only on play mode!");
}
}
}
public enum SceneType {Main = 0, Game = 1}
Comment
Your answer
Follow this Question
Related Questions
Scripting Help: Timer Problem 0 Answers
Problem with Javascript calling PHP pages in WebGL 0 Answers
Scripted tank track bones behave strange 0 Answers
Building on android. 1 Answer