Unity3D动态加载资源的2种方式

在unity开发中,我们经常要用到动态去创建物体,这里最常见的一种就是把我们的资源做成预制物体放在Resources文件夹下,然后用Resources.Load()去动态加载出来。在Resources文件夹下的所有资源都是会被打包一起发布出去的,因此不必担心资源丢失或者路径不一样的问题,注意只有Resources文件件下的资源才会被打包,如果你放在此工程(*/Assets)的其他文件夹下然后发布,到时候会造成资源加载不出来的哈!。
      加载资源的方式有用Resources的方式从内部加载,还有就是可以用WWW的方式从外部去加载。

1.Resources文件夹:
           Resources文件夹是一个只读的文件夹,通过Resources.Load()来读取对象。因为这个文件夹下的所有资源都可以运行时来加载,所以Resources文件夹下的所有东西都会被无条件的打到发布包中。建议这个文件夹下只放Prefab或者一些Object对象,因为Prefab会自动过滤掉对象上不需要的资源。举个例子我把模型文件还有贴图文件都放在了Resources文件夹下,但是我有两张贴图是没有在模型上用的,那么此时这两张没用的贴图也会被打包到发布包中。假如这里我用Prefab,那么Prefab会自动过滤到这两张不被用的贴图,这样发布包就会小一些了。

2.StreamingAssets文件夹:
           StreamingAssets文件夹也是一个只读的文件夹,但是它和Resources有点区别,Resources文件夹下的资源会进行一次压缩,而且也会加密。但是StreamingAssets文件夹就不一样,它下面的所有资源不会被加密,是原封不动的打包到发布包中,这样很容易就拿到里面的文件。所以StreamingAssets适合放一些二进制文件。StreamingAssets 只能用过www类来读取!!
  1. 在内部加载就要新建一个Resources的文件夹。我做的测试就是把一张图片显示出来,目录结构如图:

 


2.在外部加载就是把资源放在外部,我在外部放了一张图片,就是在Assets同目录下新建了一个文件夹Data.,结构目录如图:

 

我想从外部加载的图片就是在Data/Image/outside.jpg这张图片

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页