《 Unity 官方案例精讲》一书中在第 9 章介绍了角色换装示例与 Asset Bundle 的使用。示例中还展现了如何用 SkinnedMeshRenderer
渲染模型。虽然是好几年的示例了,但其中的换装的一些基本思想仍是能够借鉴的,示例中动画的播放不用太在乎,是 legacy 动画播放,了解下就好。下面先来看一下运行图。git
完整的示例代码点击 这里 。
文件 DressingCreateABEditor.cs 包含了建立 Asset Bundle 代码。文件 CharacterGenerator.cs 包含了加载 Asset Bundle 并建立角色模型和换装代码。文件 CharacterABMgr.cs 实现了简单的同步加载 Asset Bundle 代码。代码很直观清晰,很少作说明了,具体细节看代码即可。动画
Recipes/Dressing Room Example/Create Asset Bundle
建立 Asset Bundle 。File Scale
是 1 而有些是 0.01 ,若是是 0.01 须要设置 Scale Factor
为 100 。Aniamation Type
选择 Legacy ,Generation
选择 Store in root(New)
( Unity5.5 不知道之后还有没有此选项),点击 Apply 按钮后,Unity 识别 fbx 模型文件对应的动画 fbx 模型文件,并创建依赖关系,并将其中的动画添加到角色用到的 fb 模型导入时的 Animation
组件上。示例中播放动画就是经过 Animation
组件播放。Import Materials
选项。示例中会在运行时,根据文件名动态设置模型用到的 Materials 。换装其实就是加可更换的肢体部位对应的不一样材质,来实现换装。打包 Asset Bundle ,必要时经过文件名创建映射关系,如肢体部位与对应的材质。流程以下。code
因为示例目的在于展现换装和 Asset Bundle 如何搭配使用,因此资源加载方面彻底使用了同步加载,便于理顺流程。blog
显示完成后,即可由经过菜单换装。游戏