代码改变世界

Unity3D细节整理:AssetBundle对应的各种格式文件的类型

2015-12-07 18:42  阿诚de窝  阅读(9562)  评论(0编辑  收藏  举报

我们打包AssetBundle后,Unity3D会根据文件的后缀名将文件转换为特定的类型对象存储起来,我们后期获取时需要根据这些类型取出打包的数据,这里记录下不同后缀文件打包后的类型。

文本格式

支持后缀:txt、xml;

打包后的类型:TextAsset,数据保存在TextAsset的text属性中。

二进制格式

支持后缀:bytes;

打包后的类型:TextAsset,数据保存在TextAsset的bytes属性中。

预制件格式

支持后缀:prefab;

打包后的类型:GameObject,加载后还需要调用Instantiate函数实例化才能使用。

FBX文件格式

支持后缀:fbx;

打包后的类型:添加了Animator(Mecanim动画系统)或者添加了Animation(Legacy动画系统)的GameObject,模型加载后还需要调用Instantiate函数实例化才能添加到场景,只包含动画的FBX文件动画剪辑的获取方法如下:

Mecanim动画

Mecanim中必须制作为预制件进行加载,所以加载后的人物都是配置好的,不存在需要加载Animation Clip的情况。

Legacy动画

1 private AnimationClip LoadAnimationClip(AssetBundle assetBundle, string name)
2 {
3     GameObject go = assetBundle.Load(name, typeof(GameObject)) as GameObject;
4     return go.animation.clip;
5 }

图片格式

支持后缀:bmp、jpg、png;

打包后的类型:Texture2D、Sprite。

默认Texture2D,比如使用AssetDatabase.LoadMainAssetAtPath方法加载是就是Texture2D的类型,如果希望打包后是Sprite类型(用在2D游戏上时)可以使用下面的方法加载:

AssetDatabase.LoadAssetAtPath("Assets/Image.png", typeof(Sprite));

音乐格式

支持后缀:aiff、wav、mp3、ogg;

打包后的类型:AudioClip。

ScriptableObject格式

支持后缀:asset;

打包后的类型:ScriptableObject的派生类。

详情点击这里