记录下自己的学习,忘记后方便查看。本人初学者,有错误请多多指正
在unity打包后,有时候需要外部修改文本或者图片,这里写一下unity加载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<string> textList = new List<string>();
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。
本文介绍如何在Unity中创建StreamingAssets文件夹以便于外部修改文件,并通过示例脚本展示了如何加载并读取XML文件中的数据。
1231

被折叠的 条评论
为什么被折叠?



