Unity3D培训
美国上市Unity3D培训机构

400-111-8989

热门课程

Unity2D 精灵换装系统实现教程

  • 发布:Unity3D培训
  • 来源:Unity3D教程
  • 时间:2017-03-30 11:33

背景

有了前篇多方向多动作移动,逐帧动画系统,作为本篇的基础,实现换装系统就很容易了,实际上就是更换精灵图集这么简单。实际的2D经典游戏也是怎么做的,比如网易的西游系列角色也就能染染头发什么的,实际上就是精灵的图集换了没有什么高深的东西。当然为了充实本篇的内容,还是要添加一点小小的难度?我们加上角色可以更换武器的需求,更换武器就要难许多了,因为涉及到角色要正确拿起武器还要和角色同步移动,所以一共涉及到3个方面的内容,就是动态更换,对位和同步移动(实际坐骑系统也是一个原理),当然很多事情是美工人员提供的,引擎只要提供具有图集融合的换装系统即可。最终实现效果图,

【Unity2D 精灵换装系统实现教程】

实现

如何破呢!背景中已经说的很清楚了,原理很简单,传统的做法是这样的,首先通过图片合成的技术,我们的美工人员准备好角色精灵图片集合,然后完成武器图片集合的动态合成。然后我们根据游戏需求或者叫做策划案将美工设计的各种精灵角色图片集合,武器图片集合在游戏运行时,动态合成然后赋予角色精灵动画系统即可。这样就可以实现更换武器了,老规矩我们通过图片的形式来说明这个动态换肤的原理,一目了然,

首先是不同服装或者角色其实是独立的一张精灵图集,当然这个图集是比较复杂的有8个方向和n个动作(站立,跑动,施法,死亡等等)

【Unity2D 精灵换装系统实现教程】
【Unity2D 精灵换装系统实现教程】

其次是可以更换的武器的对应图集

【Unity2D 精灵换装系统实现教程】

最后是在游戏动画系统呈现之前做精灵图集的融合,供最终的动画系统显示

【Unity2D 精灵换装系统实现教程】

具体怎么实现?我们可以使用接合前篇所提到的Unity动态sprite分割和加载技术,采用纹理动态生成技术完成这个功能,具体代码如下所示,

关于Unity动态sprite分割和加载技术可以参考前篇Unity 2D角色纹理的动态加载和自动分割,当然前篇基本实现的是一个方向(一维)的分割。本篇使用的是多维的也就是八个方向的所以代码可能复杂一些(原理一样)

【Unity2D 精灵换装系统实现教程】
【Unity2D 精灵换装系统实现教程】

角色身体和武器的动态融合,也就是2d纹理动态生成技术技术,是通过Super.CombineTestures()这个函数来实现的,主要依赖Unity Texture2D的SetPixel这个方法进行2d纹理的动态重绘。

【Unity2D 精灵换装系统实现教程】

需要注意的一点是使用Texture2D的SetPixel在纹理类型(Texture type)设置项要设置成 Advance,不然会报错

【Unity2D 精灵换装系统实现教程】

总结

有了前面这么多篇基础知识的积累,实现本篇2d精灵的换装系统,也是水到渠成的事情。希望本篇对大家有所帮助,当然可能水平有限,提到的技术也许不是性能最优的,比如使用sprite动态切割的精灵图集本身需要大量的美工工作量,小游戏往往做不到,可能需要骨骼动画这样的技术,而且Unity主打的是移动端,这么大规模的图集,在渲染上可能要会消耗很多资源,欢迎大家指导交流。

本文由达内unity3d培训班转载自网络 感谢您的关注,如有侵权请联系我们

免费预约企业总监级讲师试听课

怕钱不够?就业挣钱后再付学费!     怕学不会?0基础入学,达内定制课程!     担心就业?近12万家雇主企业,推荐名企就业!

上一篇:Unity 5的光照魅力
下一篇:Unity3D与VR虚拟现实之间的区别和联系
选择城市和中心
贵州省

广西省

海南省