我們打包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的派生類。
詳情點擊這里。