在unity中,一般声音、预制体、材质以及其他各种资源的加载都可以使用拖拽的方式,在组件界面里把资源拖进去即可。但是有时我们也会想要在脚本中加载资源,或者对资源进行统一管理,这时候我们就可以使用Unity提供的资源加载函数——Resources.Load

加载资源(返回一个泛型对象):var 变量= Resources.Load<T>("Resources文件夹下的文件路径");

使用注意:

  • 使用这种方式加载资源文件时,首先需要在Asset目录下创建一个名为Resources的文件夹(可以不在一级目录,二级目录也可以),所有资源文件都放在该文件夹下,命令中的路径从 Resources 文件夹处开始写。
  • 用 “/ ”表示子文件夹。
  • 读取的文件不要加文件的后缀。
  • Load 后 <> 中写入读取的类型。

举个例子,如果我们想要读取音频文件 Assets/Resources/Music/1.wav,调用方法为:

string fileName = "Music/1";
AudioClip clip = Resources.Load<AudioClip>(fileName);

或者想要加载预制体Assets/Game/Resources/Prefabs/2.prefab,调用方法为

string fileName = "Prefabs/2";
GameObject gameobject = Resources.Load(fileName) as GameObject;

通常,我们可以将资源路径新建一个单独的静态类,单独存储,这样就可以在所有脚本中调用它了,如:

public static class MyConst
{public const string RESOURCES_PATH = "Prefabs/Bullet";public const string RESOURCES_ASTEROID01_PATH = "Prefabs/Asteroid_01";public const string RESOURCES_ASTEROID02_PATH = "Prefabs/Asteroid_02";public const string RESOURCES_ASTEROID03_PATH = "Prefabs/Asteroid_03";public const string RESOURCES_ENEMY_PATH = "Prefabs/Enemy";public const string RESOURCES_BULLET_ENEMY_PATH = "Prefabs/Bullet_Enemy";
}

这样我们在其他脚本中直接调用该类中的字符串常量即可加载资源,在日后看代码的时候也比较好通过字符串常量的命名知道加载的资源是什么:

    GameObject enemy;private void Awake(){enemy = Resources.Load(MyConst.RESOURCES_ENEMY_PATH) as GameObject;}

Unity3D 资源加载 Resources.Load相关推荐

  1. Unity3D资源加载与内存管理

    Unity3D资源加载与内存管理 Unity 3D中的资源加载 AssetBundle运行时加载: Unity3D占用内存太大怎么解决呢? 关于内存管理 举两个例子帮助理解 额外问题 Hog的评论引用 ...

  2. 【Unity3D日常开发】Unity中的资源加载与文件路径

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  3. Unity资源加载简析(一)Resources

    一.Resources(此类允许按照路径名来查找并加载物体) 1.Resources.Load加载 加载储存在Resources文件夹中path处的资源(Resouces文件夹可以在Assets文件夹 ...

  4. Unity3D之AssetBundle资源加载封装

    转载自:http://www.luzexi.com/unity3d/游戏通用模块/前端技术/2014/04/16/Unity3D之AssetBundle资源加载封装/ GitHub:https://g ...

  5. Layaair 3D资源加载(Unity3D 导出资源)

    Layaair 3D资源加载 layaair 预加载3D资源(Unity3D 导出资源)  和  2D 资源还是有些区别的. 2D资源的预加载 https://blog.csdn.net/nicepa ...

  6. 6. Unity3d Lua框架 - xLua - UIManager UI管理系统:提供UI操作、UI层级、UI消息、UI资源加载、UI调度、UI缓存等管理

    UIManager.lua – UI管理系统:提供UI操作.UI层级.UI消息.UI资源加载.UI调度.UI缓存等管理 – 注意: – 1.Window包括:Model.Ctrl.View.和Acti ...

  7. unity 异步加载网络图片_一个非常好用的AssetBundle资源加载器

    Loxodon Framework Bundle是一个非常好用的AssetBundle加载器,也是一个AssetBundle冗余分析工具.它能够自动管理AssetBundle之间复杂的依赖关系,它通过 ...

  8. Unity资源加载入门

    写在前面 本文转载自:https://gameinstitute.qq.com/community/detail/123460,供自己学习用,如有疑问,请移步原创. 引言 Unity的资源加载及管理, ...

  9. Unity资源加载管理

    转载链接: https://bbs.gameres.com/thread_800362_1_1.html 我理解的资源管理 举一个不恰当的例子来描述我所理解的资源管理(因为我实在想不出更合适的例子了) ...

  10. Unity游戏开发——新发教你做游戏(三):3种资源加载方式

    文章目录 一.前言 二.Unity的目录结构规范 1.Resources(不是很推荐把资源放这个目录) 2.RawAssets(存放生资源) 3.GameRes(存放熟资源) 4.StreamingA ...

最新文章

  1. Linux学习记录--数据流重定向
  2. 通过Windows的远程桌面连接树莓派
  3. 10.Facade-外观模式
  4. 基于SharePoint大型企业协同门户产品-永久免费
  5. nik collection滤镜
  6. LMS学习函数MATLAB代码
  7. Jdk1.8新特性(三)——方法引用::
  8. php构造数组,并把多数组插入php文件
  9. HTML示例08---CSS3概述
  10. 计算机网络 —— 组网
  11. 黑苹果 2分钟 重启_一分钟了解苹果iPad Pro 2020的激光雷达到底是什么黑科技?...
  12. 把kafka数据从hbase迁移到hdfs,并按天加载到hive表(hbase与hadoop为不同集群)
  13. linux开发板系统备份
  14. Netty高性能之道1-传统RPC调用性能差的三宗罪
  15. GIS应用技巧之矢量网络分析法
  16. 【雅思】【绿宝书错词本】List13~24
  17. 查询数据库有哪些表,有多少张表 sql语句
  18. android 11.0 12.0设置app为默认浏览器
  19. IT科技行业发展现状,未来发展方向有哪些?
  20. linux c语言编程(转)

热门文章

  1. 用HTML制作个人简历
  2. 基于Python的管理系统(附源码)
  3. 直播电商源码,无加密
  4. python构建关键词共现矩阵
  5. stc15f2k60f2单片机定时器_STC15F2K60S2系列
  6. tomcat 启动编码设置
  7. NekoHtml 乱码出现问号的解决
  8. 语音识别之DTW算法的应用(Python)
  9. NanoPC-T4 RK3399和PC有线本地网络传输摄像头视频python
  10. eclipse adt bundle不显示Android SDK菜单