当前位置:   article > 正文

u3d---打包资源AssetsBundle与读取_bundle u3d manifest

bundle u3d manifest

一:打包资源。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. public class AssetsBundle : MonoBehaviour {
  6. [MenuItem("Assets/Buid AssetBundle")]
  7. static void BuildAllAssetsBundles()
  8. {
  9. BuildPipeline.BuildAssetBundles("AssetBundle", BuildAssetBundleOptions.None,
  10. BuildTarget.StandaloneWindows);
  11. //用这句代码来打包这个文件
  12. //AssetBundle 代表文件名.也就是要提前在这个工程目录下创建一个AssetBundle的文件.
  13. //第二个参数(BuildAssetBundleOptions.None)表示 AssetBundle Build Option
  14. //第三个参数是平台
  15. }
  16. }

MenuItem就是在Assets下多了个按钮,这个和编辑插件一样, 之后的语法buildPipeline这个似乎有些api弃用,必须把参数填全。

之后打包出来的东西就是资源文件下prefab 的inspector面板中 右下角位置。 注意这里的输出资源是同assets同级目录下。

打包完成后会多一个了:AssetBundle文件 以及.manifest文件。  无后缀的文件表示了当前打包的所有资源,  .mainfest文件则表示了我们打包的prefab的所有依赖的scripts等文件。


二:读取资源

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class LoadAssetsBundle : MonoBehaviour {
  5. public string url;
  6. public string assetsName;
  7. IEnumerator Start() {
  8. WWW www = new WWW(url);
  9. yield return www;//等待www加载完成
  10. if (www.error!=null)
  11. {
  12. Debug.Log("net error");
  13. }
  14. else
  15. {
  16. AssetBundle bundle= www.assetBundle;
  17. Object obj= bundle.LoadAsset(assetsName);
  18. var t=Instantiate(obj);
  19. bundle.Unload(false);//true 全部卸载 false释放用过的 这里如果写true会发现纹理贴图不见了,是紫色的
  20. }
  21. www.Dispose();//释放资源
  22. }
  23. }

其中url是读取的assetbundle:   注意如果是本地的则是(注意/字符)
file://D:/Battle/AssetBundle/player1.assetbundle
assetsName则是我们刚刚生成的 ,我这里是player1  

尝试着在自己的ftp上读取  url:

ftp://10.192.69.9/player1.assetbundle

这个就不用file:了


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/82272
推荐阅读
相关标签
  

闽ICP备14008679号