浅尝Unity 3D的Asset Bundle知识(二)-----打包基础篇
来源:互联网 发布:c语言手机编译器中文 编辑:程序博客网 时间:2024/04/28 02:32
今天小生继续献丑来和大家讨论讨论关于Asset Bundle的打包方法。说到Asset Bundle的相关基础入门介绍,还请详见小生的前一篇文章[浅尝Unity 3D的Asset Bundle知识(一)], 小生就不在这里多多赘述。前几篇开头说得都太啰嗦,今天就让我们直奔主题。
先说下小生环境的情况,以后的文章都是基于这个配置来做的。(不是强求大家和我一个配置)
然后我们再来简单说下打包的概要和大致步骤吧。
1.概要:
本文是结合Unity 3D的4.x版本的Unity Pro来进行的实做,外加一个Apache服务器。Unity自然是来用来打包和建立工程的工具,那么很多人可能很奇怪,那Apache还用来干什么的呢。简单来说就是你先做好了Asset的包(后缀名可你喜欢的起,Unity几乎都是可以识别的,但是exe可以识别与否小生还真没研究过,见得比较多的就是[.unity3d]这种格式的),然后把这个做好的我们称之为包的文件放到Apache的webroot目录下,这样可以让Unity的项目能通过网络下载到它。(这里我们虽然是放在本地,所以访问就是你的IP Address或者就是127.0.0.1喽)。
本文要实现的就是你选择一个项目目录中的元素,比如说Texture或者Prefab等后,然后点击右键然后会在右键的下拉菜单中看到一个Build Asset Bundle with sub component的菜单项(这个菜单项的名字是随便起的,不需要太拘泥),然后点击这个菜单项就自动把你选中的元素打包成Asset Bundle。效果如下图。
2.打包的大概步骤:
1)建立一个scene,然后在其中建立个Game Object---Plane,之后再建立一个Game Object---Sphere。之后把这两个的位置信息在Inspector面板中都给reset一下。做好之后就是参见下图的样子。Unity4中建立新Scene(就是经常人们说的场景)的时候是没有自动加入光照效果的,我这里看着是白色的Plane,那当然不必说就是我自己加了灯光这个效果喽。但是Unity5种初始的时候已经自动加入了光照效果了。嘿嘿,这个就是题外话了。调整完后就如下图↓
2)然后把图中的球的Game Object的高度调成5,然后再给其加入Rigidbody的属性。参见下图↓
3)导入一张图片到项目中,这里这个图片就成为了Texture(学名:纹理)的素材了,然后再建立一个Material(学名:材质)的空元素,把这个纹理的素材加入到材质上。加入后就成为下图这个样子了。↓
材质做好之后,再把材质附到小球之上。至此,我们就作出了一个最终目的的小球了。这个小球上包含了一个包含了一张图片的材质。做好的小球参见下图↓
之后我们建立一个空白的Prefab元素,然后把这个小球给放到里面去。至此,我们就完成了Unity UI端的设定了。参见下图↓
4)小球做好了,之后再在项目中的Assets的文件夹下,建立一个新的文件夹-----Editor,这个文件夹的名字就一定要起这个哦,小生查了一下相关的文档,这个文件夹起了这个名字后就变成了对于Unity来说的特殊文件夹,Unity在build出正常的项目包的时候是不会把这个文件夹的内容编译进去的,所以例如这个生成Asset Bundle的脚本放在这里刚刚好。毕竟游戏玩家中的内容一般是不需要这个脚本的不是。
之后在这个文件夹下新建一个C#的脚本文件,文件名就随你喜欢喽。建立完如下图↓
3.涉及的技术知识:
Unity里面支持JavaScript还有C#等语言来做脚本语言,小生进公司后选择的是用C#来来编码。所以关于Unity的部分,小生都是用C#来做讲解(还请各位看官多多包涵)。然后我们再来介绍一下要用到的函数喽。
1.MenuItem : 这个方法是起到在Unity的下拉菜单栏里面加上一个选项。看下面的代码片的时候,你可以注意到这个方法执行后,必须要在其下声明一个静态方法才可以。这样才可以把方法关联到这个菜单选项上。(静态方法名可以设定其他名字的,不必拘泥)
2.Selection: 这是一个名为UnityEditor包里的类,所以你需要在文件头上先声明倒入这个包。[using UnityEditor;]
3.BuildPipeline:这个类呢就是Unity中的一个打包的工具类。
自己看了Api文档后感觉说的都不是太具体,但是对于类中的方法说得是比较详细外加还附带范例,大家如果想查看相关的官方Api的话,请参见。Unity 3D 官方 Api
具体代码参见如下:
- 浅尝Unity 3D的Asset Bundle知识(二)-----打包基础篇
- 浅尝Unity 3D的Asset Bundle知识(一)
- 浅尝Unity 3D的Asset Bundle知识(四)-----基础打牢篇
- 浅尝Unity 3D的Asset Bundle知识(三)-----导入资源篇
- 浅尝Unity 3D的Asset Bundle知识(五)-----缓存利用篇
- 浅尝Unity 3D的Asset Bundle知识(六)-----缓存利用进阶篇
- 浅尝Unity 3D的Asset Bundle知识(七)-----依赖的利用
- unity之Asset Bundle资源打包加载
- Unity 5:使用 Asset Bundle 和 Asset Bundle Manager (3)
- Unity 5 官方打包管理工具 Asset Bundle Manager
- Unity 5: Asset Bundle 和 Asset Bundle Manager (1)
- Unity 5:使用 Asset Bundle 和 Asset Bundle Manager (2)
- Unity打包的APK中Asset文件分析
- [Unity 3D] Unity 3D 性能优化(二)
- [Unity 3D] Unity 3D 性能优化(二)
- Unity 3D知识体系结构
- Unity 3d 的基础语法
- Asset Bundle
- 机器学习框架、库和软件集合:awesome-machine-learning
- android的Jni层调用.so库(小记)
- 静态编译与动态编译
- openfire外部组件的编写-这玩意干啥用的?
- linux kernel 打印函数指针对应的函数名
- 浅尝Unity 3D的Asset Bundle知识(二)-----打包基础篇
- mac 修改系统配置参数 主机名 等
- 关于学习C++和编程的50个建议和观点
- js去掉字符串前后空格的五种方法
- Unity3D中如何访问数据库
- android中LayoutInflater的3种使用以及getSystemService的API
- atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
- 形态学开闭操作
- ImageView的scaleType属性(一)