Save: PlayerPrefs.SetInt("CabinetCount", cabinets.Count); for(int i = 0; i < cabinets.Count; i++) { PlayerPrefs.SetFloat(item.gameObject.name + i + "x", item.transform.position.x); PlayerPrefs.SetFloat(item.gameObject.name + i + "y", item.transform.position.y); PlayerPrefs.SetFloat(item.gameObject.name + i + "z", item.transform.position.z); PlayerPrefs.SetFloat(item.gameObject.name + i + "rot_x", item.transform.rotation.x); PlayerPrefs.SetFloat(item.gameObject.name + i + "rot_y", item.transform.rotation.y); PlayerPrefs.SetFloat(item.gameObject.name + i + "rot_z", item.transform.rotation.z); PlayerPrefs.SetInt(item.gameObject.name + i + "type", item.type); PlayerPrefs.SetInt(item.gameObject.name + i + "level", item.level); } Load: int count = PlayerPrefs.GetInt("CabinetCount"); for(int i = 0; i < count ; i++) { Vector3 pos = Vector3.zero; Vector3 rot = Vector3.zero; pos.x = PlayerPrefs.GetFloat("CabinetName" + i + "x"); pos.y = PlayerPrefs.GetFloat("CabinetName" + i + "y"); pos.z = PlayerPrefs.GetFloat("CabinetName" + i + "z"); rot.x = PlayerPrefs.GetFloat("CabinetName" + i + "rot_x"); rot.y = PlayerPrefs.GetFloat("CabinetName" + i + "rot_y"); rot.z = PlayerPrefs.GetFloat("CabinetName" + i + "rot_z"); int type = PlayerPrefs.GetInt("CabinetName" + i + "type"); int level = PlayerPrefs.GetInt("CabinetName" + i + "level"); GameObject go = Instantiate(CabinetPrefab, pos, rot, null); CabinetScript cabScript = go.GetComponent(); cabScript.type = type; cabScript.level = level; }