Hi,
i’ve done this>> screenshot
so i get some idea how the thing works.
I need to do another to save an XML file…here the code to create the xml:
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System.Text;
public class _GameSave : MonoBehaviour
{
// An example where the encoding can be found is at
// http://www.eggheadcafe.com/articles/system.xml.xmlserialization.asp
// We will just use the KISS method and cheat a little and use
// the examples from the web page since they are fully described
// This is our local private members
bool _ShouldSave, _ShouldLoad, _SwitchSave, _SwitchLoad;
string _FileLocation, _FileName;
List<SaveStructure.GameItems> _GameItems;
GameObject[] bodies;
string _data = string.Empty;
Vector3 VPosition;
Vector3 VRotation;
//public WWWForm form = new WWWForm();
//public string url = _FileLocation;
void Awake()
{
_GameItems = new List<SaveStructure.GameItems>();
}
// When the EGO is instansiated the Start will trigger
// so we setup our initial values for our local members
void Start()
{
// _FileLocation = "http://www.deddytati.com/unity/webplayer/xmlParser2.php";
_FileLocation = Application.dataPath+"/";
_FileName = "saveData.xml";
}
void Update() { }
// bool isSaving = false;
void OnGUI()
{
//***************************************************
// Saving The Player...
// **************************************************
// isSaving=true;
bodies = FindObjectsOfType(typeof(GameObject)) as GameObject[];
_GameItems = new List<SaveStructure.GameItems>();
SaveStructure.GameItems itm;
foreach (GameObject body in bodies)
{
itm = new SaveStructure.GameItems();
itm.ID = body.name + "_" + body.GetInstanceID();
itm.Name = body.name;
itm.posx = body.transform.position.x;
itm.posy = body.transform.position.y;
itm.posz = body.transform.position.z;
itm.rotx = body.transform.eulerAngles.x;
itm.roty = body.transform.eulerAngles.y;
itm.rotz = body.transform.eulerAngles.z;
_GameItems.Add(itm);
}
// Time to creat our XML!
_data = SerializeObject(_GameItems);
CreateXML();
Debug.Log("Data Saved");
}
/* The following metods came from the referenced URL *//*
string UTF8ByteArrayToString(byte[] characters)
{
UTF8Encoding encoding = new UTF8Encoding();
string constructedString = encoding.GetString(characters);
return (constructedString);
}
byte[] StringToUTF8ByteArray(string pXmlString)
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] byteArray = encoding.GetBytes(pXmlString);
return byteArray;
}
// Here we serialize our UserData object of myData
string SerializeObject(object pObject)
{
string XmlizedString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(List<SaveStructure.GameItems>));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());
return XmlizedString;
}
// Here we deserialize it back into its original form
object DeserializeObject(string pXmlizedString)
{
XmlSerializer xs = new XmlSerializer(typeof(List<SaveStructure.GameItems>));
MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
return xs.Deserialize(memoryStream);
}
// Finally our save and load methods for the file itself
void CreateXML()
{
StreamWriter writer;
FileInfo t = new FileInfo(_FileLocation + "/" + _FileName);
if (!t.Exists)
{
writer = t.CreateText();
}
else
{
// t.Delete();
writer = t.CreateText();
}
writer.Write(_data);
writer.Close();
Debug.Log("File written.");
}
}
/*void LoadXML()
{
if (File.Exists(_FileLocation + "/" + _FileName))
{
StreamReader r = File.OpenText(_FileLocation + "/" + _FileName);
string _info = r.ReadToEnd();
r.Close();
// notice how I use a reference to type (UserData) here, you need this
// so that the returned object is converted into the correct type
_GameItems =(List<SaveStructure.GameItems>)DeserializeObject(_info);
Debug.Log("File Read with item count: " + _GameItems.Count);
}
else
{
Debug.Log("Files does not exist: " + _FileLocation + "/" + _FileName);
}
}
}*/
and the question is how i can integrate the **write xml part**
to the part where it **send the info a php**
file to create an XML file in the server.
p/s:the code for the screenshot is in javascript while the write xml part in c#.