• Unity打包/读取AssetBundle资源全教程


    Unity 资源AssetBundle打包


    本文提供全流程,中文翻译。

    Chinar 坚持将简单的生活方式,带给世人!

    (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)



    Chinar —— 心分享、心创新!

    助力快速完成资源进行 AssetBundle 打包与读取

    为新手节省宝贵的时间,避免采坑!


    Chinar 教程效果:
    这里写图片描述



    全文高清图片,点击即可放大观看 (很多人竟然不知道)


    1

    AssetBundle Description —— 资源打包


    AssetBundle 的具体定义网上诸多大神的解释很是细致,一搜一大片,在这里我都不再班门弄斧了

    这里 Chinar 只简单说下为什么要用它
    1. 如果所有的资源文件,全部打包到程序中,那么程序的安装包就会很大

    AssetBundle 文件放在服务器上,用的时候再从服务器进行加载,所以这个包根本就不在程序当中
    2. 那就是最主要的热更新了
    发布软件后,开发者进行很小的一次更新,都需要重新打包发布

    而对于用户来说,需要重新下载进行安装,无疑导致了用户体验不好。只要有更新,用户就重新安装程序

    AssetBundle 技术,可以在用户重装软件的情况下,做到更改程序中的一些资源,设置

    开发者可以实时的完成更新,应用到所有用户的客户端上,非常方便

    举个栗子黑白88


    2

    AssetBundle Name —— AssetBundle名称设置


    我们如何将一个需要的资源打包到 AssetBundle 中呢?

    Inspector 面板最下方,有一提供我们预览的小窗口,可以拖动(如果没有,就在最下方缩小着呢,拖上来即可)

    AssetBundle 选项中, New 给资源包创建/指定一个名称

    注意-命名规范:
    1. 必须小写字母,就算你大写了Unity也会自动转小写这里写图片描述
    2. 命名规范:名称后要加 .unity3d / .assetbundle (例如:globule.unity3d)

    (就算你起名的时候不加 .unity3d / .assetbundle也是可以读取的(但不规范,不推荐!))
    这里写图片描述
    3. 名称+“/”+另一个名称,会自动生成子选项(打包时,会自动生成一个新的名称文件夹) 这里写图片描述

    (进行 AssetBundle 打包操作后,会生成对应名称的 AssetBundle 文件:globule. unity3d)

    如果有子选项的情况下打包后,会生成一个chinar文件夹,存放子选项名称的文件
    举个栗子黑白88
    这里写图片描述


    3

    Editor Menu —— 创建菜单按钮


    写一个编辑器脚本,菜单栏中添加一个按钮,用来完成 AssetBundle 打包操作

    为了规范,要创建一个 Editor文件夹,将脚本放在该目录中

    点击按钮会在工程文件内, Assets 文件外,自动创建一个名为 ChinarAssetBundles 的文件夹

    举个栗子黑白88
    这里写图片描述

    using System.IO;
    using UnityEditor;
    
    
    /// <summary>
    /// 打包脚本 —— 放在 Editor 文件夹下(规范)
    /// </summary>
    public class ChinarAssetBundle
    {
        [MenuItem("Chinar工具/打包AssetsBundle资源")] //菜单栏添加按钮
        static void BuildAllAssetsBundles()
        {
            string folder = "ChinarAssetBundles";                                                                               //定义文件夹名字
            if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);                                                  //文件夹不存在,则创建
            BuildPipeline.BuildAssetBundles("ChinarAssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); //创建AssetBundle
        }
    }

    4

    BuildPipeline.BuildAssetBundles() —— 打包函数

    等待系统编译后,菜单栏会增加一个按钮 Chinar 工具 点击打包,即可完成资源打包


    提示:

    将需要打包 AssetBundle 的预设物、图片、材质等资源设置对应 AssetBundle 名称

    系统会自动打包被设置名称的文件,没有设置的都不会进行打包

    这里我指定了1个图片、一个纹理,一个预设物进行打包
    举个栗子黑白88
    这里写图片描述


    5

    BuildPipeline.BuildAssetBundles() —— 打包函数


    Unity 提供的打包函数,有多个重载函数

    具体有什么不同,请大家查询下官方Api或者搜索下网络大神的讲解,这里都不一一赘述了

    无特别情况下,就用这一个就够了

    BuildPipeline.BuildAssetBundles("ChinarAssetBundle",BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);


    支持

    May Be —— 搞开发,总有一天要做的事!


    拥有自己的服务器,无需再找攻略!

    Chinar 提供一站式教程,闭眼式创建!

    为新手节省宝贵时间,避免采坑!


    先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


    1 —— 云服务器超全购买流程 (新手必备!)

    2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

    3—— Windows 服务器配置、运行、建站一条龙 !

    4 —— Linux 服务器配置、运行、建站一条龙 !





    技术交流群:806091680 ! Chinar 欢迎你的加入


    END

    本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

    对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

    对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

  • 相关阅读:
    小心!你被“大数据”锁定了
    深入浅出安卓,怎样从零学好移动开发
    Cocos2d-x3.0触摸
    将Spring源代码导入eclipse步骤
    vertica时间计算SQL语句实例:统计一天内登录的用户
    cocos2d-x 2.2 创建项目
    Codeforces-475B Strongly Connected City
    java socket通信-传输文件图片--传输图片
    listView解决滑动时黑色背景问题
    UVa 10450
  • 原文地址:https://www.cnblogs.com/chinarbolg/p/9601381.html
Copyright © 2020-2023  润新知