现在的游戏,如果没有换装功能的话,可能会让人觉得非常以外:这个游戏连换装都没有?还能玩吗?真的,不知道大家有没有注意过,貌似绝大部分的游戏都设计到换装。比如热门的网络游戏LOL,DNF这些,LOL里面的皮肤系统就是典型的换装了,DNF里面的时装等。手机游戏也是有换装的。甚至有专门的换装游戏(我不知道这有什么好玩的)。再说一个例子吧,绝地求生,刚出来那会儿,就只有衣服裤子鞋子帽子的基本服饰吧,这就是换装了。最近更是出现了枪械的皮肤,人物涂鸦等。看到没有。为什么大部分的游戏,管它和自己的游戏有没有联系,反正也要弄一个换装。这是为什么?很明显,不可能没有用。黑格尔《法哲学原理》里面有一句话:存在即合理。所以换装的存在绝对有它的用处。先看看换装Demo:

PS:这个是网上找的源码,本身也很简单,我就没有自己写,就用别人的来说事就好,哈哈。

OK,前面说了这么多,现在进入正题。因为我们是用unity开发游戏。所以我们就必须要知道unity这个引擎里面有什么可以帮我们实现换装的。那么其实在unity里面来实现换装的话,我们有三种方式实现。首先你得知道换装的思路原理:其实就是改变一些材料啊。样式啊等。那么在unity里面我们可以用标准的术语说,可以通过以下三个点来达到换装效果:材质,网格,模型。

好的,我们一个一个来说:首先就是材质,那么说它之前,我们需要真正了解到什么是材质,知道了就好做了。材质呢,就是一种配置文件,根据你选择的Shader算法来进行配置和计算。最终变为成品材质。那么在这里我就不过多讲解材质了,大家知道我们把图片拖到Cube上就会生成一个材质球,然后不同的图片就会有不同的材质生成。所以第一种换装方法就是这样的。

就像这样,它这个模型很明显有四张贴图,所以我们可以做四个材质球,相当于它有四个皮肤了。那么怎么通过代码更改它呢?很简单,物体.渲染组件.材质 = 新材质,搞定。然后第二种就是改变网格了。网格是什么呢?它是一个模型的骨骼了,你可以这样理解。是由建模师构建的。你应该有这样的经历,比如你的一个模型,它的下面由很多网格组成,所以我们可以通过改变每个部位的网格来实现换装,这个换装就更加真实了。第一种只能说是换皮。

比如赛车游戏,如果有那种改装模式,你可以自定义你的整个车子,那么你就可以疯狂的开始你的汽修工程表演。比如给你的车子换上跑车轮胎,换上跑车的发动机等等,那么假如你刚开始的车子是比较差的。那么很明显你的车子的那些部件的模型和跑车的模型不是一样的,也就不能是简单的换皮能搞定的,这个时候我们就需要换网格了。这个也简单。只要注意一个点就说网格不能单独拿到,必须要先拿到整个预支体,然后再抽出来。怎么说呢?上代码吧:物体.网格过滤器.网格 = 新网格。这是整体的换装。然后:新网格 = 你定义的新网格携带者(就是那个预制体呗).得到网格过滤器组件.网格。搞定。是不是很简单呢?哈哈。

至于第三种换装方式,那就比前面的还要简单了。直接换游戏物体了。就说把你的人物模型(打比方)换成另外一个完全不同的。比如吃鸡游戏里面的男角色和女角色的切换。

好了,这就是unity换装的三大方式和思路了。如果有说错的地方,可以指正出来哦。