Unity 编辑器环境下加载任意处资源 Resources.LoadAssetAtPath方法

1.Resources.LoadAssetAtPath

在Unity3D中如何实现动态加载资源的方法,就是把资源放在Resources目录下,使用Resources.Load方法即可动态加载资源。

但将资源放在Resources目录下有一个问题,那就是打包程序的时候会将Resources目录下的全部文件都加密压缩打进包内,这样如果我们想使用assetbundle方式打小包的话就不行了。

这个问题,API文档里有个方法叫Resources.LoadAssetAtPath,这个方法可以让你加载Assets目录下任何一个位置的资源,但只是在编辑器模式下。

利用这个方法,我们可以在测试和发布时使用两种不同的策略来加载资源:在编辑器测试环境使用Resources.LoadAssetAtPath方法动态加载资源;在发布环境中使用assetbundle方式加载动态资源。

private void LoadPrefabByResources()
{
    Object pre = Resources.LoadAssetAtPath(path, typeof(GameObject));
    GameObject cube = (GameObject)Instantiate(pre);
    cube.transform.parent = transform;  //设置父物体为自己
}

2.需要注意的事情

Resources.LoadAssetAtPath

只能在编辑器下加载非Resources文件夹下面的资源,但是打包出来并不行。

所以我们必须考虑好打包出来之后,资源怎么写入,怎么加载?

最方便的就是StreamingAssets文件夹,我们可以把数据全部放到这里面,然后通过WebRequest去加载,这里面的技术会在我的下一篇博文进行介绍

其次就是打包AssetsBundle,这个可以参照我的这篇博文 AssetBundle学习

AssetBundle是一个压缩包包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行的时候被加载;
它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值