返回列表
查看: 1419|回复: 1

[转载] 吃鸡开发实战之倍镜实现

[复制链接]
发表于 2018-11-5 17:18:14 | 显示全部楼层 |阅读模式
发帖
封面:
在吃鸡元年,你们是否也中了吃鸡的毒?在短短的半年时间内,吃鸡这个词仿佛病毒一样疯狂的入侵到每个人的日常生活中,我也不例外.

这篇文章主要分享吃鸡里面倍镜的实现效果.

在这里我用到的是Unity这个引擎来实现. 单纯的吃鸡倍镜效果实现起来是非常简单的.在这里我用两张图来给大家剖析一下他的实现原理。

a195-1.png

1表示我们摄像机中的物体,2代表我们最后呈像的框,3代表我们摄像机渲染区域,可以看成是由无数个平面构成的 如图中4,这样构成一个平面,最后将这些平面按照我们的分辨率投射到呈像框里面.

第二张图是修改了我们摄像机渲染角度后的图片. 可以发现我们的渲染区域缩小了,然后我们的 物体在我们4号的平面里面所占的比例增加了.然后我们把他们两个摄像机所渲染出来的游戏视图展示出来

a195-2.png
可以发现,我们的物体在缩小摄像机渲染角度之后,成像大小发生了变化.
这便是我们倍镜的实现原理了.

接下来我们将这个原理运用到我们的实验场景中看一下效果.

第一步
先创建出两个UI, 一个是我们的基础镜,一个是我们的倍镜

a195-3.png
a195-4.png

注意:镜子一定要放在我们屏幕的中心点,不能有误差,在这里我让镜子偏移五个像素我们看一下效果:

a195-5.png

原本我们的点是对着靶子的十环处.放大之后他往下偏移了不少.因为在我们放大镜头的同时,我们的误差也在放大,所以一定要让我们的镜头对准屏幕的正中间.

第二步
通过开关镜的操作修改摄像机的照射角度
a195-6.png
注意:在这里摄像机的渲染模式必须是Perspective广角渲染.

上面的原理我们已经分析出来了,就是修改摄像机的渲染角度,在这里并不是说去修改摄像机Transform里面的那个角度,而是要去修改Camera下面Field of View 这个属性的值。

如果说上面的原理分析不能理解的话呢,我们这里举一个栗子.
a195-7.png

这就好比我们打开手机的拍照功能,然后放大镜头.会发现我们镜头内的照射区域变小了但是区域内的物体变大了,.在这里修改照射角度就是这个原理.

下面通过代码去修改它的值:

a195-8.png

第三步
在update里面进行检测, 当右键按下时判断当前的镜子类型,然后决定调用镜子开/关的方法即可.

a195-9.png

最终实现的效果就是下面这样了:

a195-10.png

这也是当前吃鸡以及几款吃鸡手游倍镜的实现方式了.

来源:知乎
作者:代码律动

回复

使用道具 举报

 楼主| 发表于 2018-11-12 20:34:40 | 显示全部楼层
z的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 客服中心 搜索