Unity Asset Bundle 角色換裝示例 官方例子

《 Unity 官方案例精講》一書中在第 9 章介紹了角色換裝示例與 Asset Bundle 的使用。示例中還展示了如何用 SkinnedMeshRenderer 渲染模型。雖然是好幾年的示例了,但其中的換裝的一些基本思想還是可以借鑒的,示例中動畫的播放不用太在意,是 legacy 動畫播放,了解下就好。下面先來看一下運(yùn)行圖。

character change

完整的示例代碼點(diǎn)擊 這里 。
文件 DressingCreateABEditor.cs 包含了創(chuàng)建 Asset Bundle 代碼。文件 CharacterGenerator.cs 包含了加載 Asset Bundle 并創(chuàng)建角色模型和換裝代碼。文件 CharacterABMgr.cs 實(shí)現(xiàn)了簡單的同步加載 Asset Bundle 代碼。代碼很直觀清晰,不多做說明了,具體細(xì)節(jié)看代碼便可。

運(yùn)行游戲

  • 創(chuàng)建 Asset Bundle 。點(diǎn)擊菜單項 Recipes/Dressing Room Example/Create Asset Bundle 創(chuàng)建 Asset Bundle 。
  • 打開 DressingTest.scene 場景文件。運(yùn)行游戲。
  • 點(diǎn)擊菜單查看換裝效果。

注意事項

  • fbx 模型文件導(dǎo)入時,有些 File Scale 是 1 而有些是 0.01 ,如果是 0.01 需要設(shè)置 Scale Factor 為 100 。
  • fbx 模型文件導(dǎo)入時,在 Rig 標(biāo)簽下,Aniamation Type 選擇 Legacy ,Generation 選擇 Store in root(New) ( Unity5.5 不知道以后還有沒有此選項),點(diǎn)擊 Apply 按鈕后,Unity 識別 fbx 模型文件對應(yīng)的動畫 fbx 模型文件,并建立依賴關(guān)系,并將其中的動畫添加到角色用到的 fb 模型導(dǎo)入時的 Animation 組件上。示例中播放動畫就是通過 Animation 組件播放。
  • fbx 模型文件導(dǎo)入時,不需要導(dǎo)入 Mateirals 。勾掉 Import Materials 選項。示例中會在運(yùn)行時,根據(jù)文件名動態(tài)設(shè)置模型用到的 Materials 。

打包流程與加載流程

換裝其實(shí)就是加可更換的肢體部位對應(yīng)的不同材質(zhì),來實(shí)現(xiàn)換裝。打包 Asset Bundle ,必要時通過文件名建立映射關(guān)系,如肢體部位與對應(yīng)的材質(zhì)。流程如下。

  • 將每個角色的基本信息打包成一個 Asset Bundle ,如 name_characterbase.assetbundle 。使用此資源之后創(chuàng)建用于渲染的 GameObject 。
  • 將每個角色的可更換的肢體部位分別打包成一個 Asset Bundle ,如果 name_part-number.assetbundle 或 name_part.assetbundle 。其中包含了對應(yīng)的網(wǎng)格,骨骼和材質(zhì)信息。之后從此資源中選擇渲染需要的資源。
  • 如何去加載肢體部位用到的 Materials 呢?把用于肢體部位的 Material 資源名稱與肢體部位 Asset Bundle 建立映射關(guān)系,打包成一個 Asset Bundle ,如 characterelements.assetbundle 。這個 Asset Bundle 是所有資源共享的。

由于示例目的在于展示換裝和 Asset Bundle 如何搭配使用,所以資源加載方面完全使用了同步加載,便于理順流程。

  • 先加載 characterelements.assetbundle 。獲取當(dāng)前共有多少個角色,每個角色有多少的可更好的肢體部位,每個肢體部位可以更換哪些材質(zhì)。
  • 加載 name_characterbase.assetbundle 創(chuàng)建 GameObject 。
  • 加載各肢體部位對應(yīng)的 Asset Bundle ,準(zhǔn)備渲染數(shù)據(jù)。
  • 顯示角色并播放動畫。

顯示完成后,便可由通過菜單換裝。


我的博客地址 https://my.oschina.net/iirecord/blog

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 翻譯:莫銘原文地址:AssetBundle usage patterns 本系列中的上一篇文章覆蓋了AssetBu...
    莫銘閱讀 5,652評論 1 12
  • 首先附上原文鏈接:https://unity3d.com/learn/tutorials/topics/best-...
    Bonging閱讀 1,271評論 0 0
  • 工具Unity 中的資源來源有三個途徑:一個是Unity自動打包資源,一個是Resources,一個是AssetB...
    某人在閱讀 9,171評論 0 5
  • 這一章來說說AssetBundles,介紹下它的基礎(chǔ)系統(tǒng),還有一些和AssetBundles進(jìn)行交互的核心API。...
    莫銘閱讀 3,057評論 6 10
  • 首先附上原文鏈接:https://unity3d.com/cn/learn/tutorials/topics/be...
    Bonging閱讀 934評論 0 0

友情鏈接更多精彩內(nèi)容