存储:

在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包中(*.unity3D),第二种就是把文件存放在一个特殊的目录如:StreamingAssets,这个目录的东西Unity不会打包任何资源包中(但让除非你手动打包),但是发布的时候这个文件夹会被打包进程序中,一起发布。

格式:

通过WWW加载:

一种是纯文本格式,如 txt,xml,csv等,这种纯文本试用原始扩展名即可。

一种是二进制,如果文件需要压缩,加密等等操作,需要把文件的扩展名改为.bytes.

使用WWW加载时需要注意编码格式为 utf8,如果它不能解析为utf8字符串,文本导入器会尽量带nonascii字。

代码中修改xml编码格式:

byte[] encodingData = Encoding.UTF8.GetBytes(m_strData);
      System.IO.MemoryStream ms = new System.IO.MemoryStream(encodingData);
      ms.Flush();
      ms.Position = 0;
      document.Load(ms)

通过C#加载:

任意格式.

读取:

第一种:

这种方法也分两种,一种是放到Resources文件夹下当Untiy 发布的时候会把这个文件夹下的所有资源打包成一个默认资源包一起发布出去,读取时用Resources类读取.

另外一种是自己打包然后通过WWW加载AssetBundle,最后通过AssetBundle中的函数加载与Resources方法类似。

第二种:

这种方法需要把文件放到StreamingAssets目录下,在不同的平台上面 (Windows, Ios ,Android),该目录最终发布的位置不同,所以读取的方法也不同。

windows

IOS

Android

C#

支持

支持

不支持

C#路径

Application.streamingAssetsPath
 + "/Myfile.txt"

Application.streamingAssetsPath
 + "/Myfile.txt"

WWW

支持

支持

支持

WWW路径

"file://"
 + Application.streamingAssetsPath
 + "/Myfile.txt"

"file://"
 + Application.streamingAssetsPath
 + "/Myfile.txt"

Application.streamingAssetsPath
 + "/Myfile.txt"

WWW是异步加载所以执行加载命令式不能直接执行读取解析操作,

要等待

WWW www = new WWW(filePath);

yield return www; // while (!www.isDone) {}

result = www.text;

本文来自:http://www.cnblogs.com/ThreeThousandBigWorld/archive/2013/07/18/3199245.html

总结:Android之所以不支持C# IO流方式读取StreamingAssets下的文件,是因为Android手机中

StreamingAssets下的文件

都包含在压缩的.jar文件中(这基本上与标准的zip压缩文件的格式相同)。这意味着,如果你不使用Unity中的WWW类去检索文件,那么你需要使用额外的软件去查看.jar的存档并获取该文件。

如果想用C# IO流方式读取,参考:

http://www.cnblogs.com/solq/archive/2012/05/21/2511522.html

StreamingAssets 官方介绍:

http://game.ceeger.com/Manual/StreamingAssets.html

http://docs.unity3d.com/Documentation/Manual/StreamingAssets.html

Unity 文件读取的更多相关文章

  1. 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)

    Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...

  2. 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)

    Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...

  3. unity文件 PlayerPrefs.SetInt 保存 And PlayerPrefs.GetInt读取

    unity文件保存读取PlayerPrefs.SetInt   And  PlayerPrefs.GetInt using UnityEngine; using System.Collections; ...

  4. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  5. php xml 文件读取 XMLReader

    php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...

  6. 1-2 nodejs小节 文件读取

    1.表达式 在命令行输入  node回车后,可以在后边输入相应的表达式,进行运算操作   2.阻塞文件读取 var data=fs.readFileSync('input.txt', 'utf-8') ...

  7. 详解Js中文件读取机制

    前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...

  8. C# 文件操作 把文件读取到字节数组

    string zipfile = "c:\\a.zip"; //方法1 FileStream fs = new FileStream(zipfile, FileMode.Open) ...

  9. H5学习系列之文件读取API--本文转自http://blog.csdn.net/jackfrued/article/details/8967667

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...

随机推荐

  1. 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)

    A. Within Arm's Reach 留坑. B. Bribing Eve 枚举经过$1$号点的所有直线,统计直线右侧的点数,旋转卡壳即可. 时间复杂度$O(n\log n)$. #includ ...

  2. Chrome - 怎样独立窗口打开开发人员工具

    打开开发人员工具, 右上角找到下图红圈的键, 长按左键直到出现绿圈的键, 别松开鼠标, 把指针移到绿圈的键上面, 松开左键, 好了, 一个独立窗口粗线了. 转载请声明出处: http://www.cn ...

  3. 2016 正确 sublime安装PHPcs PHPcodesniffer代码规范提示插件,修正网上部分不详细描述

    对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!-------------------14:37 2016/3/212016 正确 sublime安装PHPcs PHPcodesniff ...

  4. Shader实例:NGUI图集中的UISprite正确使用Shader的方法

    效果: 变灰,过滤,流光 都是UI上常用效果. 比如: 1.按钮禁用时,变灰. 2.一张Icon要应付圆形背景框,又要应付矩形背景框.就要使用过滤的方式来裁剪. 避免了美术提供两张icon的麻烦,又节 ...

  5. 自动ftp上传文件脚本

    方法一: echo "open 21.244.88.129 user glxtftp glbzuser bin prompt off cd /glxt/DBINFO lcd /tmp put ...

  6. 关于react native

    刚开始学习react native,有很多的不懂,记录一些小知识,也许下一个项目可能用到,活到老学到老........ http://www.lcode.org/react-native-viewpa ...

  7. html 设置宽度100% 块状元素往下调解决方法

    css在设置body的宽度为100%充满整个屏幕时,当浏览器缩小时块状元素会被挤压下去 解决方案非常简单,给body设置一个最小宽度 min-width:960px; 此时即使浏览器缩小,在960像素 ...

  8. Spark优化之二:集群上运行jar程序,状态一直Accepted且不停止不报错

    如果运行Spark集群时状态一直为Accepted且不停止不报错,比如像下面这样的情况: 15/06/14 11:33:33 INFO yarn.Client: Application report ...

  9. Python的字节编译

    1.什么是Python的.pyc文件 在python中 .pyc文件是指以.pyc为后缀名的这一类文件,在我们的python的安装目录里,找到模块所在的目录Lib会看到很多以.py结尾的模块文件,与之 ...

  10. navicat 结合快捷键

    ctrl+q 打开查询窗口ctrl+/ 注释sql语句ctrl+shift +/ 解除注释ctrl+r 运行查询窗口的sql语句ctrl+shift+r 只运行选中的sql语句F6 打开一个mysql ...