Hello, i have a somewhat simple scene- a player made of 3 cubes, with a rigidbody and special movement/GUI script, and a 3d map made of strictly cubes in this way:
Cubes {
simpleMaterials; //diffuse materials with simple texture;
script; //that only Destroys the cube OnMouseDown();
}
all the mapCubes are under one empty GameObject, and i put a script on that parent gameObject to see how many cubes are present, and the console reported 9469
cubes! The editor works fine, i’m not sure about the build yet.
I was wondering, if i added a script to save and load the cubes’ positions using PlayerPrefsX, would that hurt the performance at all? it seems like it only effects the performance in the editor when i duplicate/move/rotate large chunks of cubes.
save/load script in mind:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Controls/Save-Load-AND-Count-Children")]
[ExecuteInEditMode]
public class CountChildren: MonoBehaviour {
public Transform[] pos; //in the editor, pos.Length = 9469;
void Awake() {
print(transform.childCount);
}
void Update() {
if(Operations.sOperation == "Save") SaveMap();
if(Operations.sOperation == "Load") LoadMap();
}
void SaveMap() {
for (int i0=0; i0<pos.Length; i0++) {
PlayerPrefsX.SetVector3("MapBlock"+i0.ToString("f0"),pos[i0].position);
}
}
void LoadMap() {
for (int i1=0; i1<pos.Length; i1++) {
pos[i1].position = PlayerPrefsX.GetVector3("MapBlock"+i1.ToString("f0"));
}
}
}
EDIT:
ok, thanks. so this revised script:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Controls/Save-Load-AND-Count-Children")]
[ExecuteInEditMode]
public class CountChildren: MonoBehaviour {
public Transform[] pos; //in the editor, pos.Length = 9469;
void Awake() {
print(transform.childCount);
}
void Update() {
if(Operations.sOperation == "Save") SaveMap();
if(Operations.sOperation == "Load") LoadMap();
}
void SaveMap() {
for (int i0=0; i0<pos.Length; i0++) {
PlayerPrefsX.SetVector3("MapBlock"+i0.ToString("f0"),pos[i0].position);
Operations.sOperation = "";
}
}
void LoadMap() {
for (int i1=0; i1<pos.Length; i1++) {
pos[i1].position = PlayerPrefsX.GetVector3("MapBlock"+i1.ToString("f0"));
Operations.sOperation = "";
}
}
}
shouldn’t hurt the performance? since after it saves or loads, it resets the text so that it will stop saving/loading.