public void fromXml(XmlDocument xmlDoc) { clearCubes(); XmlNode memoryNode = xmlDoc.SelectSingleNode("//bookmark/memory"); XmlNode nameNode = memoryNode.SelectSingleNode("name"); gameObject.name = nameNode.InnerText; XmlNode protectedNode = memoryNode.SelectSingleNode("read_protected_data"); if (protectedNode != null) { readProtectedData = bool.Parse(protectedNode.InnerText); } Color s1 = pipeBehavior.session1Color; Color s2 = pipeBehavior.session2Color; XmlNode session1Color = memoryNode.SelectSingleNode("session1_color"); if (session1Color != null) { s1 = myUtils.colorFromRGBA(session1Color.InnerText); XmlNode session2Color = memoryNode.SelectSingleNode("session2_color"); s2 = myUtils.colorFromRGBA(session2Color.InnerText); } XmlNodeList cubeNodes = memoryNode.SelectNodes("cube"); //Debug.Log ("memory fromXML # cubes is " + cubeNodes.Count); for (int i = 0; i < cubeNodes.Count; i++) { GameObject myData = getFreeData(); //GameObject myData = Instantiate (Resources.Load ("dataPrefab")) as GameObject; dataBehaviorNew script = (dataBehaviorNew)myData.GetComponent(typeof(dataBehaviorNew)); int index = script.fromXML(cubeNodes[i]); script.enabled = false; //myData.collider.enabled = false; //myData.collider2D.enabled = false; Vector3 pos = this.getAddressLocation(script.address); myData.transform.position = pos; //Debug.Log ("memory fromXML loaded cube "+index); cubes[index] = myData; } if (session1Color != null) { setCubeColor(s1, pipeBehavior.session1Color); setCubeColor(s2, pipeBehavior.session2Color); } }