unity游戏中的换装换色

游戏中经常遇到给角色换装染色的需求,通过换装换色可以使的资源不增加的基础上在本来的衣服套数翻倍,策划可在这上挖坑,废话不多说,进入正题
主要分为两部分
1.换装
一个角色每个需要更换的部位都是一个单独模块,公用一套骨骼,这个是美术提供好,在unity中负责渲染的控件Skinned Mesh Render,每个部位一个这个组件, unity游戏中的换装换色
换装的基本原理就是:先做一套整体的衣服,比如你的项目角色两个部位要更换,分别是头,身体。最好将要更换的部位单独做成perfab,角色整体一个perfab,针对某个部位进行更换时,将该部位的Skinned Mesh Render的组建上三个内容(上面图中圈出的部分)动态的更换掉,分别是mesh
RootBone ,Material。不过有一点要注意,如果你每套一的骨骼都不一样内存中的骨骼信息要动态更新,更新完后动画ainimator要rebind,不然动画会出问题。
2.染色
针对某个部分做选区,根据自己去求,想要单独染色的部位就单独做一个选区,一个通道一个选区,如果区域多的话也可以优化,前期调研中发现比较好的染色方式,先对原帖图去色,然后再采用叠加模式进行混合效果比较好。
改天将源码上传下。