What I’m wanting is to be able to save a GameObject and save some specific data from it, to allow for a saving and loading of the game world.
Here is my SaveToJSON.cs
using UnityEngine;
using System.Collections.Generic;
using System.IO;
public class SaveToJSON : MonoBehaviour {
public string worldName;
public List<GameObject> pedestals;
public List<Pedestals> pedestalData;
public string worldSaveData;
public WorldData worldData;
void Start () {
foreach (GameObject pedestal in pedestals) {
pedestalData.Add(pedestal.GetComponent<Pedestals>());
}
}
void Update () {
if (Input.GetKeyDown(KeyCode.O)) {
worldData = new WorldData(worldName, pedestals, pedestalData);
worldSaveData = JsonUtility.ToJson(worldData);
File.WriteAllText(Application.dataPath + "/Saves/worldData.json", worldSaveData.ToString());
}
}
}
public class WorldData {
public string worldName;
public List<GameObject> pedestals;
public List<Pedestals> pedestalData;
public WorldData (string worldName, List<GameObject> pedestals, List<Pedestals> pedestalData) {
this.worldName = worldName;
this.pedestals = pedestals;
this.pedestalData = pedestalData;
}
}
My Pedestals.cs
using UnityEngine;
public class Pedestals : MonoBehavior {
public bool hasTower = false;
public float altitude;
[Range(0f, 3f)]
public float y;
private RaycastHit _hit;
private Renderer _renderer;
void Awake () {
_renderer = transform.GetComponent<Renderer>();
altitude = transform.position.y + (_renderer.bounds.size.y / 2);
}
}
I’ve tried brain-storming and done some searching around, but I can’t seem to find my answer. With those two classes all I get is this in my worldData.json file.
{"worldName":"Level 1","pedestals":[{"instanceID":11936},{"instanceID":11800},{"instanceID":11942},{"instanceID":12714},{"instanceID":11992},{"instanceID":10990},{"instanceID":12800},{"instanceID":11298},{"instanceID":12454},{"instanceID":10866},{"instanceID":12394},{"instanceID":11362},{"instanceID":12266},{"instanceID":10984},{"instanceID":11278},{"instanceID":12142},{"instanceID":11486},{"instanceID":10896},{"instanceID":11028},{"instanceID":12076},{"instanceID":12708},{"instanceID":12230},{"instanceID":11336},{"instanceID":10774},{"instanceID":11386},{"instanceID":11046},{"instanceID":11766},{"instanceID":12312},{"instanceID":11900},{"instanceID":11830},{"instanceID":11310},{"instanceID":11956},{"instanceID":11316},{"instanceID":12224},{"instanceID":11916},{"instanceID":12562},{"instanceID":10784},{"instanceID":12776},{"instanceID":11526},{"instanceID":12172},{"instanceID":12512},{"instanceID":10792},{"instanceID":11572},{"instanceID":10836},{"instanceID":11788},{"instanceID":12530},{"instanceID":12378},{"instanceID":11892},{"instanceID":12218},{"instanceID":10758},{"instanceID":10848},{"instanceID":11164},{"instanceID":11492},{"instanceID":11680},{"instanceID":12416},{"instanceID":11922},{"instanceID":10684},{"instanceID":10644},{"instanceID":11586},{"instanceID":12640},{"instanceID":12350},{"instanceID":11536},{"instanceID":12254},{"instanceID":11748},{"instanceID":10650},{"instanceID":12136},{"instanceID":12040},{"instanceID":12034},{"instanceID":12186},{"instanceID":11180},{"instanceID":10888},{"instanceID":11174},{"instanceID":10968},{"instanceID":12582},{"instanceID":12700},{"instanceID":11346},{"instanceID":10956},{"instanceID":12646},{"instanceID":11672},{"instanceID":12664},{"instanceID":11236},{"instanceID":12296},{"instanceID":10616},{"instanceID":11512},{"instanceID":10880},{"instanceID":11708},{"instanceID":11724},{"instanceID":11356},{"instanceID":11290},{"instanceID":11854}],"pedestalData":[{"instanceID":11938},{"instanceID":11802},{"instanceID":11944},{"instanceID":12716},{"instanceID":11994},{"instanceID":10992},{"instanceID":12802},{"instanceID":11300},{"instanceID":12456},{"instanceID":10868},{"instanceID":12396},{"instanceID":11364},{"instanceID":12268},{"instanceID":10986},{"instanceID":11280},{"instanceID":12144},{"instanceID":11488},{"instanceID":10898},{"instanceID":11030},{"instanceID":12078},{"instanceID":12710},{"instanceID":12232},{"instanceID":11338},{"instanceID":10776},{"instanceID":11388},{"instanceID":11048},{"instanceID":11768},{"instanceID":12314},{"instanceID":11902},{"instanceID":11832},{"instanceID":11312},{"instanceID":11958},{"instanceID":11318},{"instanceID":12226},{"instanceID":11918},{"instanceID":12564},{"instanceID":10786},{"instanceID":12778},{"instanceID":11528},{"instanceID":12174},{"instanceID":12514},{"instanceID":10794},{"instanceID":11574},{"instanceID":10838},{"instanceID":11790},{"instanceID":12532},{"instanceID":12380},{"instanceID":11894},{"instanceID":12220},{"instanceID":10760},{"instanceID":10850},{"instanceID":11166},{"instanceID":11494},{"instanceID":11682},{"instanceID":12418},{"instanceID":11924},{"instanceID":10686},{"instanceID":10646},{"instanceID":11588},{"instanceID":12642},{"instanceID":12352},{"instanceID":11538},{"instanceID":12256},{"instanceID":11750},{"instanceID":10652},{"instanceID":12138},{"instanceID":12042},{"instanceID":12036},{"instanceID":12188},{"instanceID":11182},{"instanceID":10890},{"instanceID":11176},{"instanceID":10970},{"instanceID":12584},{"instanceID":12702},{"instanceID":11348},{"instanceID":10958},{"instanceID":12648},{"instanceID":11674},{"instanceID":12666},{"instanceID":11238},{"instanceID":12298},{"instanceID":10618},{"instanceID":11514},{"instanceID":10882},{"instanceID":11710},{"instanceID":11726},{"instanceID":11358},{"instanceID":11292},{"instanceID":11856}]}
Any and all help is appreciated immensely.