xml 파일, 데이터 저장 및 추출, PlayerPrefs

6996 단어 unity3d
게임 을 하려 면 게임 의 진 도 를 항상 저장 해 야 합 니 다. 게임 데 이 터 를 모두 로 컬 에 저장 하 는 것 은 비 현실 적 입 니 다. 그러면 게임 을 다시 시작 할 때마다 데이터 가 비 워 지기 때문에 xml 파일 이 필요 합 니 다.
PlayerPrefs 는 유 니 티 가 자체 적 으로 가지 고 있 는 데이터 구조 로 유 니 티 Engine 네 임 스페이스 에서 정수, 부동 소수점, 문자열 3 가지 유형의 데 이 터 를 조작 할 수 있 습 니 다.
PlayerPrefs 키 조합 규칙 사용
PlayerPrefs.SetInt(“Number”, num);//  ,       ,     
int num = PlayerPrefs.GetInt(“Number”);//  
float PI = 3.14f; 
PlayerPrefs.SetFloat(“PI”, PI);
PI = PlayerPrefs.GetFloat(“PI”); 
String str = “neworigin”;
PlayerPrefs.SetString(“Str”, str); 
Str5 =PlayerPrefs.GetFloat(“Str”); 

xml 파일 에 대한 추가 삭제 및 검사 작업 핵심 코드:
using UnityEngine;
using System.Collections;
using System.Xml;
public class heng : MonoBehaviour {

    public string xmlFileName = "/test.xml";//   
    public string xmlFilePath = string.Empty;//  
    public XmlNode _root;// 
    public XmlNode node;//  
    public XmlNode child node;//   
    public XmlDocument _doc;//     
    void Awake(){   
        xmlFilePath = Application.streamingAssetsPath + xmlFileName;//
    }
    void Start () {
        _doc = new XmlDocument ();
        _doc.Load (xmlFilePath);//          
        _root = _doc.SelectSingleNode ("plist");//   
        XmlElement element = _doc.CreateElement ("mystring");//  
        element.InnerText = "dsfsdfgd";
        //add ("key",element);//  
        //remove("array","string3");//  
        //find ("string5");//  
        replace ("array","string5",element);//  
    }

    // Update is called once per frame
    void Update () {

    }
    //    
    void load(XmlNode _root,string parentelement,string childelement = ""){

        foreach(XmlNode element in _root){
            if(element.Name.Equals(parentelement)){
                node = element;
            }
            if(element.Name.Equals(childelement)){
                childnode = element;
            }
            load(element,parentelement,childelement);
        }
    }
    //  
    void add(string parentelement,XmlElement newelement){
        load (_root,parentelement);
        if (node != null) {
            Debug.Log("SDSDA");
            node.AppendChild (newelement);
            _doc.Save(xmlFilePath);
        }

    }
    //  
    void remove(string parentname,string childname){
        load (_root,parentname,childname);
        if(node!=null&&childnode!=null){
            Debug.Log("remove");
            node.RemoveChild(childnode);
            _doc.Save(xmlFilePath);
        }
    }
    //  
    void find(string nodename){
        load (_root,nodename);
        if (node!=null) {
            Debug.Log("find");
            Debug.Log(node.InnerText);
        }
    }
    //  
    void replace(string parentname,string oldchildname,XmlElement newchilename){
        load (_root,parentname,oldchildname);
        if(node!=null&&childnode!=null){
            Debug.Log("replace");
            node.ReplaceChild(newchilename,childnode);
            _doc.Save(xmlFilePath);
        }


    }
}
![       ](http://img.blog.csdn.net/20160806162350014)
foreach (XmlElement childNode in _root) {
        if(childNode.Name.Equals("dict")){
            foreach(XmlElement grandSon in childNode){
                //grandSon.AppendChild(element);
                if(grandSon.Name.Equals("array"))
                    //grandSon.AppendChild(element);//add
                //grandSon.RemoveChild(grandSon,grandSon.LastChild);
                //grandSon.RemoveChild(element,grandSon.LastChild);
                {
                    foreach(XmlElement maternal in grandSon){
                        Debug.Log(maternal.InnerText);
                    }
                }
            }
        }
    }

“`

좋은 웹페이지 즐겨찾기