- 内容可读写,不过只能运行时才能写入或者读取。提前将数据存入这个路径是不可行的。
- 无内容限制。你可以从StreamingAsset中读取二进制文件或者从AssetBundle读取文件来写入PersistentDataPath中。
- 写下的文件,可以在电脑上查看。同样也可以清掉。
- 只读,即不能动态修改。所以想要动态更新的资源不要放在这里。
- 会将文件夹内的资源打包集成到.asset文件里面。因此建议可以放一些Prefab,因为Prefab在打包时会自动过滤掉不需要的资源,有利于减小资源包的大小。
- 主线程加载。
- 资源读取使用Resources.Load()。
- 只读不可写。
- 主要用来存放二进制文件。
- Android平台下一般是通过过WWW类来读取。
- 是Unity3D定义的一种二进制类型。
- 最好将prefab封装成AseetBundle,只要这个prefab上挂的是本地脚本,就可以。
- 使用WWW类来下载。
China文章来源地址https://www.toymoban.com/news/detail-734875.html
//-----------------------
// @Author GarFe
// @date 20190612
// @version 1.0
//-----------------------
using UnityEngine;
using System.Collections;
using System.Xml;
///
/// 此类用于测试 在Resources目录下读取XML文件
///
public class ReadXmlInResources : MonoBehaviour
{
private string readXmlResult;
// Use this for initialization
void Start () {
LoadXML("test");
Debug.Log("xml:" + readXmlResult);
}
void OnGUI()
{
GUIStyle titleStyle = new GUIStyle();
titleStyle.fontSize = 20;
titleStyle.normal.textColor = new Color(0, 255, 255);
GUI.Label(new Rect(400, 10, 500, 200), readXmlResult, titleStyle );
}
///
/// 加载Assets/Resources文件夹下resourcesName文件
///
///
private void LoadXML(string resourcesName)
{
readXmlResult = Resources.Load(resourcesName).ToString();
XmlDocument doc = new XmlDocument();
doc.LoadXml(readXmlResult);
}
}
//-----------------------
// @Author GarFe
// @date 20190612
// @version 1.0
//-----------------------
using UnityEngine;
using System.Collections;
using System.IO;
public class ReadXmlInStreamingAssets: MonoBehaviour
{
///
/// 读取XML结果
///
private string readXmlResult;
// Use this for initialization
void Start ()
{
loadXML();
Debug.Log(readXmlResult);
}
void OnGUI()
{
GUIStyle titleStyle = new GUIStyle();
titleStyle.fontSize = 20;
titleStyle.normal.textColor = new Color(0, 255, 255);
GUI.Label(new Rect(400, 10, 500, 200), readXmlResult, titleStyle);
}
///
/// 根据不同的平台加载StremingAssets文件夹下的XML文件
///
private void loadXML()
{
if(Application.platform == RuntimePlatform.Android)
{
Debug.Log("android platform");
StartCoroutine("loadXMLWithWWW");
}
else if(Application.platform == RuntimePlatform.WindowsEditor)
{
Debug.Log("window platform");
//获得文件路径
string path = Application.streamingAssetsPath + "/text.xml";
loadXMLWithStreamReader(path);
}
else if(Application.platform == RuntimePlatform.IPhonePlayer)
{
Debug.Log("iphone platform");
//获得文件路径
string path = Application.streamingAssetsPath +"/text.xml";
loadXMLWithStreamReader(path);
}
//发现所有平台StreamingAssets目录下的文件路径都可以用Application.streamingAssetsPath +"/fileName.xml"来加载,但Android加载方式不一样
}
///
/// 使用StreamReader读取文件信息
///
/// 读取文件的路径
private void loadXMLWithStreamReader(string path)
{
FileInfo fileInfo = new FileInfo(path);
StreamReader reader = fileInfo.OpenText();
readXmlResult = reader.ReadToEnd();
reader.Close();
}
///
///
///对于android平台, streamingAssets中的文件一般只能用www来异步读取
/// (同时,可以用persistenDataPath来保存streamingassets里读取的数据)
///
///
IEnumerator loadXMLWithWWW()
{
//获得文件路径
string path = Application.streamingAssetsPath + "/text.xml";
WWW www = new WWW(path);
yield return www;
readXmlResult = www.text;
}
}
文章来源:https://www.toymoban.com/news/detail-734875.html
到了这里,关于UnityAPI---Application类(数据文件路径)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!