I made a script that should save and load an array of objects but when I load all objects are given the coordinates of one. What i do wrong ?
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class SaveObjects : MonoBehaviour {
public Transform[] Object;
public string FileName = "QuickSave";
[System.Serializable]
class PaR
{
public float OPX;
public float OPY;
public float OPZ;
}
public void Save(){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = new FileStream(FileName, FileMode.Create);
PaR newData = new PaR();
for(int i = 0; i < Object.Length; i++)
{
newData.OPX = Object*.transform.position.x;*
_ newData.OPY = Object*.transform.position.y;_
_ newData.OPZ = Object.transform.position.z;
}
bf.Serialize(file, newData);
file.Close();
}
public void Load(){
if (File.Exists(FileName)){
BinaryFormatter bf = new BinaryFormatter();
FileStream file = new FileStream(FileName, FileMode.Open,FileAccess.Read);
PaR newData1 = (PaR)bf.Deserialize(file);
for(int i = 0; i < Object.Length; i++)
{
Object.transform.position = new Vector3(newData1.OPX,newData1.OPY,newData1.OPZ);
}
file.Close();
}
}
void LateUpdate () {
if (Input.GetKey (KeyCode.F5))
{
Save();
}
if (Input.GetKey (KeyCode.F9))
{
Load();
}
}
}*_