XML序列化

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml.Serialization;
using System.IO;

public class SaveXML : MonoBehaviour {

public class Towers{
    public Towers(){
    }

    public string name;
    public Vector3 pos;
    public Towers(Vector3 mpos , string mName){
        pos=mpos;
        name = mName;
    }

}


void Start () {
    List<Towers> mTa = new List<Towers> ();

    for (int i = 0; i < this.transform.childCount; i++) {
        string cna = this.transform.GetChild (i).gameObject.name;
        mTa.Add (new Towers (this.transform.GetChild (i).position, cna));
    }

    XmlSerializer xs = new XmlSerializer (typeof(List<Towers>));

    try{
        FileStream fs=new FileStream(Application.dataPath+"/Tower.xml",FileMode.Create);
        xs.Serialize(fs,mTa);
    }catch(System.Exception e){
        print (e);
    }       

}

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml.Serialization;
using System.IO;

public class LoadXML : MonoBehaviour {
private GameObject mTower;

public class Towers{
    public Towers(){
    }

    public string name;
    public Vector3 pos;
    public Towers(Vector3 mpos , string mName){
        pos=mpos;
        name = mName;
    }

}

void Start () {
    mTower = Resources.Load<GameObject> ("Ta");
    List<Towers> mTa = new List<Towers> ();

    XmlSerializer xs = new XmlSerializer (typeof(List<Towers>));

    try {
        FileStream fs = new FileStream (Application.dataPath + "/Tower.xml", FileMode.Open);
        mTa = (List<Towers>)xs.Deserialize (fs);
        fs.Close ();
    } catch (System.Exception e) {
        print (e);
    }

    for (int i = 0; i < mTa.Count; i++) {
        GameObject go = (GameObject)Instantiate (mTower);
        go.transform.position = mTa [i].pos;
        go.name = mTa [i].name;
        go.transform.SetParent (this.transform);
    }

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容