Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元
assetbundle的问题
nasly发起了话题2017-10-05
12
回复
4057
浏览

 我打包了assetbundle,然后在unity内运行能够加载assetbundle资源;但是打包成客户端以后(PC),缺无法加载,看debug是:Unable to open archive file: AssetBundles路径
这是怎么回事啊 

所有回复
  • nasly 2017-10-05

    我把打包的assetbundle的文件夹改成StreamingAssets,然后把调用的代码改成:

    即:

            //AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/animationcontroler/charactermove/playermove(run&walk) " + role.RoleID.ToString()+".unity3d");

    改成:
            AssetBundle ab = AssetBundle.LoadFromFile(Application.dataPath + "/StreamingAssets/animationcontroler/charactermove/playermove(run&walk) " + role.RoleID.ToString() + ".unity3d");

    然后打包客户端,再把assetbundle拷贝到客户端目录中,unity目录中也有一份;

    客户端发现可以成功调用了,但却发现unity内不能调用了,难道不能两者兼得吗?

     

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-10-06

    不是的,当你发布到客户端的时候,目录会发生变更

    对于StreamingAssets这个目录可以通过Application.StreamingAssets来获取,这样得到的路径不管在哪个平台都是正确的

    • nasly 2017-10-06

      现在成功读取了,但是我这个是在地图上调取人物素材读取的,申请战斗进入另一个场景,战斗完成返回后,仍然调用这个代码重新读取人物素材赋值,但是却有错误;显示can't be loaded because another AssetBundle with the same files is already loaded.
      是要离开一个场景的时候要及时卸载和清空内存中的assetbundle吗?

      (0) 回复
    • siki 2017-10-07

      回复 @ nasly: 这个是因为你的资源已经加载到了内存里面了,不用重复加载重复资源

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
  • nasly 2017-10-06

    现在知道,换场景时候,需要卸载assetbundle,但是不太会用,是不是需要把assetbundle ab记录下来,然后根据需要再ab.unload(true);呢?

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • nasly 2017-10-06

    而且是不是还有一种方法,是判断当前内存中是否包含这个assetbundle,如果存在就从内存加载,如果不存在就从文件中加载?

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • nasly 2017-10-06

    是不是需要建立一个List<AssetBundle>用来存储创建的assetbundle,然后方便反复进行加载或卸载?

    • nasly 2017-10-06

      结果,list<assetbundle>[i].unload(true)这样遍历循环发现并没有销毁掉。。。

      (0) 回复
    • nasly 2017-10-06

      遍历销毁成功了。就没有现成的方法让所有assetbundle一次从内存销毁吗?

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-10-07

    关于资源的卸载,可以在场景切换的时候使用 AssetBundle.UnloadAllAssetBundles 来看下是否还有你说的问题

    • nasly 2017-10-08

      现在弄了个脚本基本切换场景不成问题了,但是现在如果快速从1场景切换场景2然后又快速切换回1场景,在1场景会出现assetbundle还没卸载完成的问题,造成重复调用,这个该怎么解决。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • lsw5530 2017-10-10

    试试能不能发言。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!