记录下自己的学习,忘记后方便查看。本人初学者,有错误请多多指正
在unity打包后,有时候需要外部修改文本或者图片,这里写一下unity加载Xml文件的方式;
文章目录- 一、创建StreamingAssets文件夹
- 二、写脚本
- 1.引入库
- 2.自己学习写的一个读取Xml的脚本
- 总结
一、创建StreamingAssets文件夹
StreamingAssets文件夹命名可以使PC端打包后,还可以修改文件夹里的文件,该文件夹打包后不会加密。
二、写脚本 1.引入库代码如下(示例):
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Xml; using System.IO; using UnityEngine.UI;2.自己学习写的一个读取Xml的脚本
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
using System.IO;
using UnityEngine.UI;
public class ReadXml : MonoBehaviour
{
public Text[] text;
List textList = new List();
private string localPath;
void Start()
{
readxml();
}
// Update is called once per frame
void readxml()
{
localPath = Application.streamingAssetsPath+"/_Xml"+ "/" + "item.xml";//定义字符串 获取Xml文件路径
if (File.Exists(localPath))//如果文件夹存在(无论是文件夹还是文件存在都同理)
{
XmlDocument xml = new XmlDocument();//new 个对象为xml
xml.Load(localPath);//加载xml文件
XmlNodeList nodeList = xml.SelectSingleNode("text").ChildNodes;//定义节点为XML文件里名为第一个节点为item的所有孩子节点;
foreach(XmlElement xe in nodeList)遍历item下的所有子节点
{
textList.Add(xe.GetAttribute("value") );
foreach (string s in textList)
{
Debug.Log(textList[0]);
}
switch (xe.Name)
{
case "text1":
text[0].text = xe.GetAttribute("Name");
break;
case "text2":
text[1].text = xe.GetAttribute("Name");
break;
case "text3":
text[2].text = xe.GetAttribute("Name");
break;
}
}
}
else
{
Debug.Log("没有找到文件夹:寻找到相对路径路径为"+localPath);
}
}
}
我这里是加了一个数组,放了3个text文本框;执行方法后会把Xml文件相对于的属性读取出来
下面是XML文件
下面是运行后的结果(分别是三个文本框显示的内容),可以看到,成功读取到Xml里的文本
顺便贴下自己的外部加载的文件夹和挂载的脚本
提示:主要是相关的API内容来读取XML文件,至于怎么显示全靠我们自己的逻辑实现。根据工作内容,()我是菜鸡(哭))顺便学习了下外部加载图片,下次再记录吧。
第一次在这东西,也不太会排版hhh。



