Data与Resources文件夹
一般只读文件放到Resources目录
Data用于新建的文件或者要修改的文件
=================================================================

Unity默认的Resource加载
  保存和读取资源的 最简单的 方式了。但是 如果想让资源在编译后不改变,只能这样做。
  因为这里面的内容会 组合并编译到resource.assets文件(此文件可以在编译过的游戏的Data文件中找到)
  可以从编译过的项目文件Resource.assets中去加载

用法
  //Texture2D  (Texture2D)Resouce.Load(fileName);
  //文本资源      (TextAsset)Resouce.Load("ddd");
                       读取文本内容  TestAsset.text
  //声音             (AudioClip)Resouce.Load();

==========================================================

加载编译之后的文件

  1. using System.IO;
  2. using UnityEngine;
  3. using System.Collections;
  4.  
  5. public class temp : MonoBehaviour
  6. {
  7. private string fileName = "a.jpg";
  8. private string url;
  9. private Texture2D externalImage;
  10. // Use this for initialization
  11. void Start()
  12. {
  13. url = "file:" + Application.dataPath;
  14. url = Path.Combine(url, "Resources");
  15. url = Path.Combine(url, fileName);
  16.  
  17. StartCoroutine(LoadWWW());
  18. }
  19.  
  20. private IEnumerator LoadWWW()
  21. {
  22. yield return ;
  23. WWW www=new WWW(url);
  24. yield return www;
  25. externalImage = www.texture;
  26. }
  27. // Update is called once per frame
  28. void Update()
  29. {
  30.  
  31. }
  32. }

需要System.IO类
www类的对象时以“file:"开头的URL,
使用Path.Combine()而不是 ”\   /“以避免跨平台的问题

WWW和资源内容
WWW类定义了几个不同的属性和方法 用于把下载的资源 文件 数据提取到变量中
.text 只读 web数据作为string类型返回
.texture 只读 作为Texture2D类型返回
.GetAudioClip() 方法 作为AudioClip对象类型返回

=======================================================

通过从互联网 下载文件与加载外部资源文件
从服务器下载

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class temp : MonoBehaviour
  5. {
  6. private string url="http://www.packtpub.com/sites/default/files/packt_logo.png";
  7. private Texture2D externalImage;
  8. // Use this for initialization
  9. void Start()
  10. {
  11. StartCoroutine(LoadWWW());
  12. }
  13.  
  14. private void OnGUI()
  15. {
  16. GUILayout.Label("url="+url);
  17. GUILayout.Label(externalImage);
  18. }
  19. private IEnumerator LoadWWW()
  20. {
  21. yield return ;
  22. WWW imageFile=new WWW(url);
  23. yield return imageFile;
  24. externalImage = imageFile.texture;
  25. }
  26. // Update is called once per frame
  27. void Update()
  28. {
  29.  
  30. }
  31. }

==========================================================

使用外部文本文件和XML数据
最简单的是TextAsset 共有变量(编译后数据文件不再改变的情况下适用)

  1. public TextAsset DataTestAsset;
  2. private string textData;
  3.  
  4. void Start()
  5. {
  6. textData = DataTestAsset.text;
  7. }

C#文件流加载外部文本文件

  1. using System;
  2. using UnityEngine;
  3. using System.Collections;
  4. using System.IO;
  5. public class FileReadWriteManager
  6. {
  7. public void WriteTextFile(string pathAndName, string stringData)
  8. {
  9. //remove file ,if exists
  10. FileInfo textFile=new FileInfo(pathAndName);
  11. if (textFile.Exists)
  12. {
  13. textFile.Delete();
  14. }
  15. //create new empty file
  16. StreamWriter writer;
  17. writer = textFile.CreateText();
  18. //write text to file
  19. writer.Write(stringData);
  20. writer.Close();
  21. }
  22.  
  23. public string ReadTextFile(string pathAndName)
  24. {
  25. string dataAsString = "";
  26. try
  27. {
  28. //open text file
  29. StreamReader textReader = File.OpenText(pathAndName);
  30. //read content
  31. dataAsString = textReader.ReadToEnd();
  32. textReader.Close();
  33. }
  34. catch (Exception e)
  35. {
  36.  
  37. }
  38. return dataAsString;
  39. }
  40. }

调用示例

  1. private string fileName = "cities.txt";
  2. private string filePath = "";
  3. private FileReadWriteManager fileReadWriteManager=new FileReadWriteManager();
  4. void Start()
  5. {
  6. filePath = Path.Combine(Application.dataPath, "Resources");
  7. filePath = Path.Combine(filePath, fileName);
  8. string textContent = fileReadWriteManager.ReadTextFile(filePath);
  9. }
  1. private string fileName = "hello.txt";
  2. private string foleName = "Data";
  3. //需要在Project面板中创建一个Data目录文件夹
  4. private string filePath = "";
  5. private FileReadWriteManager fileReadWriteManager=new FileReadWriteManager();
  6. void Start()
  7. {
  8. filePath = Application.dataPath + Path.DirectorySeparatorChar + fileName;
  9. string textData = "abc\n def";
  10.  
  11. fileReadWriteManager.WriteTextFile(filePath, textData);
  12. filePath = Path.Combine(filePath, fileName);
  13. string textContent = fileReadWriteManager.ReadTextFile(filePath);
  14. }

Unity3d- 资源的更多相关文章

  1. unity3d 资源文件从MAX或者MAYA中导出的注意事项

    unity3d 资源文件从MAX或者MAYA中导出的注意事项     1.首先,Unity3d 中,导出带动画的资源有2种导出方式可以选择:    1) 导出资源时,只导出一个文件,保留模型,骨骼和所 ...

  2. KEngine:Unity3D资源的打包、加载、调试监控

    资源模块做什么? 资源模块——ResourceModule,是KEngine中最核心的模块,其他模块基本或多或少的对它有依赖,它主要的功能是:资源打包.路径定义.资源管理.资源调试. 资源模块对Uni ...

  3. Unity3D资源存放笔记

    文件夹及路径 昨天记了一篇AssetBundle学习笔记,那么游戏中的各种资源应该如何存放呢? 在网上一阵搜罗,把笔记记一下. 非特殊名称文件夹 非Unity3D指定名称的文件夹中的资源,如果游戏场景 ...

  4. unity3d 资源打包加密 整理

    资源打包脚本,放到Assets\Editor 文件夹下 using UnityEngine; using System.Collections; using UnityEditor; using Sy ...

  5. 【转】unity3d 资源文件从MAX或者MAYA中导出的注意事项

    转自游戏开发主席   1.首先,Unity3d 中,导出带动画的资源有2种导出方式可以选择:    1) 导出资源时,只导出一个文件,保留模型,骨骼和所有的动作帧(把所有的动作,比如idle,atta ...

  6. unity3d资源打包总结

    http://www.manew.com/blog-33734-12973.html unity 打包的时候会把下面几个文件资源打进apk或者ipa包里面 1. Asset下的所有脚本文件 2. As ...

  7. Unity3D资源

    1.ShareSDK 地址:https://github.com/MobClub/New-Unity-For-ShareSDK 文档:产品集成步骤 2.Protobuf https://github. ...

  8. [vuforia][unity3d]资源链接

    http://bbs.csdn.net/topics/390787189 CSDN论坛中 “Qualcomm Vuforia(AR虚拟现实)开发” 主题资源下载 http://bbs.csdn.net ...

  9. (转)unity3D 如何提取游戏资源 (反编译)+代码反编译

    原帖:http://bbs.9ria.com/thread-401140-1-1.html 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源.教我们初步的破解unity3d资 ...

  10. (转)Unity3D 开发优秀技术资源汇总

    原文:http://www.j2megame.com/html/xwzx/ty/3179.html Unity3D 博客 http://www.dapp.com.br/  by Dapp http:/ ...

随机推荐

  1. Readability Assessment for Text Simplification -paper

    https://pdfs.semanticscholar.org/e43a/3c3c032cf3c70875c4193f8f8818531857b2.pdf 1.introduction在Brazil ...

  2. js-自加和自减

    i++ 返回的是自增之前的值    先利用再加 ++i 返回的是自增之后的值    先加再利用

  3. django 有关session内部函数做法

    session在set和调用时其实分别做了三步: def fileupload(request): request.session['k1'] = 'ppp' ''' .生成一个随机字符串 .set_ ...

  4. qduoj LC的课后辅导

    描述 有一天,LC给我们出了一道题,如图: 这个图形从左到右由若干个 宽为1 高不确定 的小矩形构成,求出这个图形所包含的最大矩形面积. 输入 多组测试数据每组测试数据的第一行为n(0 <= n ...

  5. ACM C++

    杭电oj 2000 sort(a,a+sizof(a)); 对数组a中元素进行排序,参数1,2分别为要排序数组首末地址 故sort句换成下行也通过 sort(a,&a[3]); ac代码 // ...

  6. Python基础进程和线程

    一 背景知识 进程的概念起源于操作系统,是操作系统最核心的概念. 进程是对正在运行程序的一个抽象,操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先了解操作系统,egon介 ...

  7. python------面向对象介绍之多态实例

    一. 多态 一种接口,多种实现. 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作. ...

  8. linux运维注意事项

    防火墙和selinux一定要注意 服务器或应用出现错误是一定要查看服务器运行状态是否正确,及其相关运行日志 不管什么时候,能不要特殊字符就不要用特殊字符,避免不必要的错误 在看部署文档的时候一定要认真 ...

  9. smb文件共享实现

    samba文件共享 首先安装软件 yum install samba -y 编辑配置文件 /etc/samba/smb.conf ,在文章最后添加以下内容 [smbtest] content = do ...

  10. Autofac学习之三种生命周期:InstancePerLifetimeScope、SingleInstance、InstancePerDependency 【转载】

    InstancePerLifetimeScope:同一个Lifetime生成的对象是同一个实例 SingleInstance:单例模式,每次调用,都会使用同一个实例化的对象:每次都用同一个对象: In ...