(1)Assetbundle基于Asp3.Net动态加载模型

最近项目模型量比较大,所以我考虑使用动态加载,然后就想到了Assetbundle吗,之前有用过,但是不怎么详细,所以这次项目遇到很多坑,遇到的问题记录一下方便自己和别人,有问题的地方–哈哈菜鸟请轻喷。

先介绍一下环境,也就是ASP.net win 的虚拟主机,配置 一般般挂个网页就可以。

unity我用的版本是5.3f1.

关于打包步骤我就不详细介绍了直接贴代码。

[MenuItem("Custom Editor/Create AssetBunldes ALL")]
    static void CreateAssetBunldesALL()
    {

        Caching.CleanCache();

        string Path = "e://all.assetbundle";

        Object[] SelectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);

        foreach (Object obj in SelectedAsset)
        {
            Debug.Log("Create AssetBunldes name :" + obj);
        }

        //这里注意第二个参数就行
        if (BuildPipeline.BuildAssetBundle(null, SelectedAsset, Path, BuildAssetBundleOptions.CollectDependencies))
        {
            AssetDatabase.Refresh();
        }
        else
        {

        }
    }

还是说一下5.0打包依赖 我只是将模型 FBX和材质球在assetbundle勾上 all 后边的还是none

打包完成 是512kb

 然后使用Ftp软件  把  这个资源包传到asp.net服务器

然后 回到unity 中 代码加载 。直接上代码

IEnumerator LoadALLGameObject(string path)
    {
        print(path);
        WWW bundle = new WWW("http://www.xxxx.cn/all.assetbundle");
        yield return bundle;
        if (bundle.isDone)
        {
       //     print(bundle.assetBundle.name);
            //通过Prefab的名称把他们都读取出来
            Object obj0 = bundle.assetBundle.LoadAsset("pl01", typeof(Object));
            //    Object obj1 = bundle.assetBundle.LoadAsset("pl02", typeof(Object));

            //加载到游戏中    
            yield return Instantiate(obj0);
            //    yield return Instantiate(obj1);
            bundle.assetBundle.Unload(false);
        }
    }

效果对比

运行前:
这里写图片描述

运行后:
这里写图片描述

总结:
1、在UNITY里点击editor 把HOST url 改成自己服务器的。
这里写图片描述

2、服务器的MiMe对应要添加

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值