当前位置: 首页 > news >正文

自定义AssetBundle包扩展名

引用: https://www.cnblogs.com/huwenya/p/9246232.html

前情提要:第二种打包方式。

自定义AssetBundle包扩展名

在之前的教程中,我们已经多次提到过扩展名了,并且也已经说明了如何设置自定义的AssetBundle扩展名。至于为什么还要把它单独拿出来说一遍,自然是有它的道理的,因为这里面有一个巨大的坑...

注意,前方有坑。。。

 

根据前面的剧情,我们有三方式可以设置自定义的AssetBundle包扩展名,下面就来一一讲解:

 

一、在Inspector面板中设置扩展名

这种设置AssertBundle包扩展名的方式可能是最简单的方式了,这里我把图片再放一遍↓↓

使用这种方式设置扩展名也有坑的地方,据我的尝试,也不是任意的扩展名都可以的,假如通过这种方式设置了扩展名,但是打包以后却没有看到扩展名,那么就换一个扩展名再试试。

 

二、通过AssetBundleName设置扩展名

意思是什么呢?就是我们在给AssetBundle包设置名字的时候,同时加入扩展名。

假如说,我们给AssetBundle包取名字叫做“MyAssetBundle”,那么这个时候,我们把名字换成“MyAssetBundle,assetbundle”,不用再设置扩展名,直接打包,我们会看到打包出来的AssetBundle包带上了扩展名。

其实这是一种讨巧的方式。用这种方式可以设置任何扩展名,都没有问题,而且可以被正确加载。

 

三、通过AssetBundleBuild.assetBundleVariant设置扩展名

兴许在我心里这种方式设置扩展名才是正统,也不知道为什么会有这种奇怪的念头。

我们可以在上一教程的代码基础上加上这样一句话↓↓

 

buildMap.assetBundleVariant = "assetbundle";

然后点击菜单,运行打包程序,虽然最后打包成功了,编辑器会报错,错误信息是这样的↓↓

 

 

  1.  

    Error: Variant folder path cannot be empty

  2.  

     

这是个死活找不出原因的错,明明都打包成功了,哪里报的错??逗我来了吧??

 

 

简直让人崩溃,问度娘,度娘说:我不知道...

哎,无奈之下只好问谷哥了,幸好谷哥给力了一把↓↓

 

 

总算是找到原因了,按照上图的方法添加这几行代码,再次运行打包,就不会再报错了,心好累...

 

 

但是你以为这样就完了??那你就太年轻了...

在添加了上面的代码之后,每次运行后,你设置的信息都会存储到Inspector面板中的这里↓↓还有这里↓↓

 

(用画图打的马赛克,将就着看吧)

 

也不能通过Remove Unused Names把它们删除掉,如果是处女座的话...

 

总结来看,最方便最保险最安全最**的设置AssetBundle后缀名的方式还是第二种方式。

最后非常非常非常感谢这位叫王思元的筒子给出的正解,它的博客里还有很多很多关于AssetBundle包和打包的知识,以及各种报错的解决方案,我只是截取了其中一段,欢迎大家去看看他的博客→→博客链接←←

 

下期见啦~

相关文章:

  • 【已解决】C#中的#ifdef
  • Signed Distance Fields in Real-time Rendering
  • UE4学习笔记(六): 次世代的移动平台渲染技术
  • UnrealEngine4 PBR Shading Model 概述
  • Asset Bundles vs. Resources: A Memory Showdown
  • book 书籍下载
  • 因为UE4开源的缘故,所以一开始还从它入手。相关的ppt和notebook可以从下面的链接下载,同期的黑色行动2(black op2)的PBR使用也是很有参考价值的,加上本文里也有OP2的IBL近似方
  • eal Shading in Unreal Engine 4
  • M a t h e m a t i c a Notebook for the SIGGRAPH 2013 talk “ Background: Physics and Math of
  • We started pursuing Physically Based Shading during Black Ops, details of which I presented at SIG
  • 纹理资源格式
  • Unity-Android-打包问题
  • Unity-error
  • 前网易技术美术总监(韩国人)写的shader,续行讲解
  • Matcap Shader 详解【4】 - 多材质与混合材质
  • 【译】JS基础算法脚本:字符串结尾
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CSS实用技巧
  • ES6简单总结(搭配简单的讲解和小案例)
  • HTTP中GET与POST的区别 99%的错误认识
  • input的行数自动增减
  • Mac转Windows的拯救指南
  • MySQL数据库运维之数据恢复
  • 爱情 北京女病人
  • 设计模式走一遍---观察者模式
  • 转载:[译] 内容加速黑科技趣谈
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #pragma pack(1)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (HAL库版)freeRTOS移植STMF103
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计大学生兼职系统
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)为C# Windows服务添加安装程序
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net 反编译_.net反编译的相关问题
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .net开发时的诡异问题,button的onclick事件无效
  • @WebServiceClient注解,wsdlLocation 可配置
  • [20190113]四校联考
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [CISCN2019 华东南赛区]Web4
  • [DevEpxress]GridControl 显示Gif动画
  • [DL]深度学习_Feature Pyramid Network
  • [dts]Device Tree机制