查看原文
其他

Unity 2D教程 | 相机系统(下)

2016-12-27 Unity官方 Unity官方平台

我们在Unity 2D教程 | 相机系统(上)中为大家介绍了如何实现2D相机的基本功能,包括目标跟踪、相机偏移、平滑移动、锁定轴以防止眩晕及相机路径系统等。本文将教大家实现一些常见的相机特效,如相机缩放、屏幕抖动及淡入淡出与重叠效果。

相机缩放

相机缩放可以由玩家输入触发,也可以在锁定POI节点或关卡中关键区域时作为相机动画。

可以调整相机的orthographicSize来实现Unity 3D 中的2D相机缩放效果。将特定脚本添加到相机上,然后使用SetZoom函数修改缩放比例来达到需要的效果。1代表无缩放,0.5代表两倍放大,而2代表两倍缩小,以此类推。




屏幕抖动

如果我们想在游戏中实现地震、爆炸或任何效果,最好能有个方便的相机抖动效果。



这里我们提供了一个抖动示例,可以在GitHub上下载:gist.github.com/ftvs/5822103。该实现与之前实现的所有效果相比简单明了,且其中包含了一些随机性的效果。

淡入淡出与重叠

开始或结束关卡时,如果能有淡入淡出效果就再好不过了。要达到这种效果,我们可以添加一个不可交互的UI纹理并让其覆盖整个屏幕。最开始时将纹理设为透明,然后填入任意颜色或改为任意透明度,使用动画来达到这种效果。

下面是使用该配置的示例,请注意,UI面板对象被赋值到了主相机对象的子 “Camera Overlay”上。Camera Overlay使用了一个叫做Overlay的脚本,代码如下:






为了实现淡入效果,修改Overlay脚本,添加一个到目标颜色的插值功能,例如下面的脚本。将面板的初始颜色设置为黑色(或白色),然后将目标颜色设定为叠层最终的颜色。你可以根据需要更改fadeSpeed的值,这里推荐0.8。fadeSpeed是基于时间的。1.0代表过渡过程会持续多帧,但保持在1秒钟时间帧之中。0.8代表真实的过渡时间为1/0.8 = 1.25秒。




小结

本文尝试对一些基本模块化组件进行了讲解,并使用它们组成了游戏中的2D相机系统,同时也对设计需求进行了分析。自然地,一般游戏都有自己的特殊需求,但有了这里讲述的基本追踪概念和简易效果,就可以在此基础上走得更远,甚至构思出独有的效果。之后也可以将它们打包成为Unity 3D资源包,在其它项目中继续使用。

相机系统在游戏中扮演着重要的角色,它可以向玩家传达正确的游戏氛围。这里的一个类比是电影。想象各种不同类型的经典电影,相机和胶片本身就为场景带来了如此多的可能性,甚至使它们最终上升到了艺术的境界。因此无论什么游戏项目,首先就必须有一个优秀的相机系统。  


本文来源于:toptal.com

原作者:Mihai Cozma


相关阅读

Unity 2D教程 | 相机系统(上)

Unity 5.6 Beta版发布

Unity 2D教程 | 平台游戏

Unity教程|3D无尽跑酷游戏

Unity教程|制作一款3D射击游戏


点击“阅读原文”查看文中代码!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存