private void OnValidate() { if (m_rimData == null) { m_rimData = new RimData(gameObject, m_rimType, m_color, m_power, m_intensity); } m_rimData.SetRimType(m_rimType); m_rimData.SetColor(m_color); m_rimData.SetPower(m_power); m_rimData.SetIntensity(m_intensity); }
// Start is called before the first frame update public static void SaveRims(List <GameObject> rimData) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/game.data"; FileStream stream = new FileStream(path, FileMode.Create); RimData data = new RimData(rimData); formatter.Serialize(stream, data); stream.Close(); }
public static RimData LoadData() { string path = Application.persistentDataPath + "/game.data"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); RimData rimsLoaded = formatter.Deserialize(stream) as RimData; stream.Close(); return(rimsLoaded); } else { return(null); } }
public void LoadRims() { if (spawnedRims.Count > 0) { foreach (GameObject rim in spawnedRims) { Destroy(rim); } spawnedRims.Clear(); } RimData loadedRims = SaveSystem.LoadData(); for (int i = 0; i < loadedRims.savePos.GetLength(0); i++) { GameObject rim = Instantiate(rims[loadedRims.id[i]], new Vector3(loadedRims.savePos[i, 0], loadedRims.savePos[i, 1], loadedRims.savePos[i, 2]), Quaternion.Euler(loadedRims.saveAngle[i, 0], loadedRims.saveAngle[i, 1], loadedRims.saveAngle[i, 2])); rim.GetComponent <Rigidbody>().isKinematic = loadedRims.isKinematic[i]; spawnedRims.Add(rim); Renderer[] renderers = rim.GetComponentsInChildren <Renderer>(); for (int j = 0; j < loadedRims.saveColor[i].Length; j++) { if (ColorUtility.TryParseHtmlString("#" + loadedRims.saveColor[i][j], out Color tint)) { if (tint.Equals(Color.clear)) { return; } renderers[j].material.color = tint; } } } }
private void Awake() { m_rimData = new RimData(gameObject, m_rimType, m_color, m_power, m_intensity); }