Unity3D读取外部文件

Unity3D读取外部文件xml、json

    • C#读取XML文档
    • C#读取Json文本

C#读取XML文档

Unity3D读取XML文档不需要另外导入程序集(dll),直接引用System.Xml就行。
C#读取XML文档的代码需要根据xml文档结构做出修改。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using LitJson;
using System.Xml;
using System.IO;
using UnityEngine.UI;
using System;
using UnityEngine.SceneManagement;

public class UnityWebApiJson_zhu : MonoBehaviour
{
 		void Start ()
		{
       		 //IO判断xml文件是否存在
				if (File.Exists (Application.streamingAssetsPath + "/WebAPIJsonURL.xml"))
            	{
						XmlDocument xml = new XmlDocument ();
						xml.Load (Application.streamingAssetsPath + "/WebAPIJsonURL.xml");
						//根节点
						XmlNodeList xmlnodelist = xml.SelectSingleNode ("Xml").ChildNodes;
						foreach (XmlElement elem in xmlnodelist) 
						{	
								//字节点
								if (elem.Name == "WebapiPeople")
                          	 	 {               
                          	 	 		//再下一级节点,第二个
										APIPeopleJsonUrl = elem.ChildNodes [1].InnerText.ToString ();
										Debug.Log ("APIPeopleJsonUrl" + APIPeopleJsonUrl);                 
								}
						  }
		        	}
			}
}

下面xml文档的内容
Unity3D读取外部文件_第1张图片

C#读取Json文本

Unity3D读取json数据需要导入程序集LitJson.dll.
读取本地连接需要加上(file:\\),否则无法读取。

LitJson
读取json代码

private IEnumerator JSonPeopleFromWebAPI ()
{
		PeopleListImag.SetActive (true);//显示列表
		//下载json数据
		WWW ret = new WWW (APIPeopleJsonUrl);    //路径参数
		yield return ret;
		if (ret.error != null) {
				Debug.LogError ("error: " + ret.error);
				yield break;
		}
		if (string.IsNullOrEmpty (ret.text)) {
				yield break;
		}
		//json格式,using litJson
		JsonData JsdArray = JsonMapper.ToObject (ret.text);		
		for (int j = 0; j < JsdArray.Count; j++) {		
				CloneOBJ.transform.FindChild ("InCoalTime").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["InCoalTime"]);
				CloneOBJ.transform.FindChild ("JobNumber").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["JobNumber"]);
				CloneOBJ.transform.FindChild ("Name").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["Name"]);
				CloneOBJ.transform.FindChild ("DName").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["DName"]);
				CloneOBJ.transform.FindChild ("X").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["X"]);
				CloneOBJ.transform.FindChild ("Y").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["Y"]);
				CloneOBJ.transform.FindChild ("CO").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["CO"]);
				CloneOBJ.transform.FindChild ("CH4").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["CH4"]);
				CloneOBJ.transform.FindChild ("SN").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["SN"]);
				CloneOBJ.transform.FindChild ("ID").GetComponent<Text> ().text = Convert.ToString (JsdArray [j] ["ID"]);         
		}
}
   

在这里插入图片描述

你可能感兴趣的:(Unity3D读取外部文件)