Performance Question

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.

As long as you are using PlayerPrefs correctly, then it shouldn’t make a difference. Use it once at the beginning of the scene to load the cubes and once at the end to save their positions, but it isn’t designed to be called every frame and you would probably see a performance decrease as opposed to saving their position in local arrays.