[111463-desktop-2-17-2018-3-45-00-am-847.jpg*_|111463]So i have it set up to save my objects with the positions to player pref but i need help converting it from string it saves as back to object and transform.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemDB : MonoBehaviour {
public bool save;
public bool load;
public GameObject[] ItemPrefabs;
public GameObject[] TerrianDB;
public GameObject[] ObjsDB;
public Vector3[] ObjPos;
public string[] saved;
public string[] savedname;
public string[] savedpos;
public int savedlength;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update()
{
TerrianDB = GameObject.FindGameObjectsWithTag("TerrianObj");
ObjsDB = GameObject.FindGameObjectsWithTag("Obj");
ObjPos = new Vector3[ObjsDB.Length];
for (int i = 0; i < ObjsDB.Length; i++)
{
ObjPos _= ObjsDB*.transform.position;*_
} if (load) { LoadDB(); } if (save) { SaveDB(); } }
void LoadDB() { savedlength = PlayerPrefs.GetInt(“Num”); saved = new string[savedlength]; savedname = new string[savedlength]; savedpos = new string[savedlength]; for (int i = 0; i < savedlength; i++) { saved = PlayerPrefs.GetString(“Data” + i.ToString()); savedname = PlayerPrefs.GetString(“Data1” + i.ToString()); savedpos = PlayerPrefs.GetString(“Data2” + i.ToString()); } Spawn(); load = false; }
void Spawn() {
}
void SaveDB() { saved = new string[ObjsDB.Length]; savedname = new string[ObjsDB.Length]; savedpos = new string[ObjsDB.Length]; PlayerPrefs.SetInt(“Num”, ObjsDB.Length);
for (int i = 0; i < ObjsDB.Length; i++) { PlayerPrefs.SetString(“Data” + i.ToString(), ObjsDB_.name + “:” + ObjPos*.ToString());_ _PlayerPrefs.SetString(“Data1” + i.ToString(), ObjsDB.name);_ _PlayerPrefs.SetString(“Data2” + i.ToString(), ObjPos.ToString()); } save = false; } }
So after trail and lots of Errors i figured out how do it with out having make separate database.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemDB : MonoBehaviour {
public bool save;
public bool load;
public GameObject[] ItemPrefabs;
public GameObject[] TerrianDB;
public GameObject[] ObjsDB;
public Vector3[] ObjPos;
public string[] saved;
public string[] savedname;
public Vector3[] savedvec;
public GameObject[] spawnobj;
public int savedlength;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update()
{
TerrianDB = GameObject.FindGameObjectsWithTag("TerrianObj");
ObjsDB = GameObject.FindGameObjectsWithTag("Obj");
ObjPos = new Vector3[ObjsDB.Length];
for (int i = 0; i < ObjsDB.Length; i++)
{
ObjPos _= ObjsDB*.transform.position;*_
} if (load) { LoadDB(); } if (save) { SaveDB(); } }
void LoadDB() { savedlength = PlayerPrefs.GetInt(“Num”); saved = new string[savedlength]; savedname = new string[savedlength]; savedvec = new Vector3[savedlength]; spawnobj = new GameObject[savedlength]; for (int i = 0; i < savedlength; i++) { saved = PlayerPrefs.GetString(“Data” + i.ToString()); savedname = PlayerPrefs.GetString(“Data1” + i.ToString()); savedvec*.x = PlayerPrefs.GetFloat(“Datax” + i.ToString());* savedvec*.y = PlayerPrefs.GetFloat(“Datay” + i.ToString());* savedvec*.z = PlayerPrefs.GetFloat(“Dataz” + i.ToString());* } for(int i = 0; i < ItemPrefabs.Length; i++) { for (int x = 0; x < savedname.Length; x++) { if (ItemPrefabs*.name == savedname[x].Replace(“(” + x.ToString() + “)” ,“”).Trim())* { spawnobj[x] = ItemPrefabs*;* } } } Spawn(); load = false; }