前言:(说一些废话)小伙伴们在玩网游类似CF、吃鸡等枪战游戏时,最想拥有的肯定最厉害的武器,然而最厉害的武器其实是知己知彼,当你知道了对方的位置时,那这局对战就毫无悬念了。今天我们就简单的制作一个类似游戏透视外挂的一个效果。(如果你们学会了去搞游戏外挂被搞了不要提我哦,哈哈,我只提供技术,觉得还可以的话就关注我哦~)

效果图:


最终效果,前面是相机渲染到Plane上的画面

蓝色遮挡后面有不同颜色的Cube

原理:

下面简单说一下原理:
首先第一步就是对相机的处理,将相机的画面渲染到物体上,这一步很简单,但也是必需 的一步。
第二步就是对相机进行处理(Shader)
第三步调整相机位置达到想要的效果
下面开始制作:

1.相机制作(主相机和透视相机)

主相机可以看到所有层级的物体,并显示在Plane上,透视相机只能看到指定层级的物体,显示在Plane上,达到透视的效果。

1.1 主相机制作

1.1.1 创建一个Camera,不要用自带的MainCamera,简单调整参数 或者默认参数即可

1.1.2 创建一个RenderTexture,命名如上图,并添加到相机上
1.1.3 创建一个Plane,相机画面会渲染到Plane上面,属性如下

1.1.4 创建一个材质球,一个Shader,挂载到创建的Plane上面 如上图:
Shader "Custom/_MainTex"
{Properties{_MainTex("Texture", 2D) = "white" {}_LuminosityAmount("GrayScale Amount", Range(0.0,1.0)) = 1.0}SubShader{Pass{CGPROGRAM#pragma vertex vert_img#pragma fragment frag#pragma fragmentoption ARB_precision_hint_fastest#include "UnityCG.cginc"sampler2D _MainTex;fixed _LuminosityAmount;fixed4 frag(v2f_img i) : SV_Target{fixed4 renderTex = tex2D(_MainTex, i.uv);float luminosity = 0.299 * renderTex.r + 0.587 * renderTex.g + 0.114 * renderTex.b;fixed4 col = lerp(renderTex, luminosity,_LuminosityAmount);return col;}ENDCG}}
}
1.1.5 主相机完成 效果图如下 可以将相机作为Plane的子物体,调整相机角度,效果像照相机一样

1.2 透视相机制作

1.2.1 创建一个新的Camera,命名为Camera(1)

修改相机参数如下:

其中的CullingMask为你要透视看到的物体的层级,物体的层级在之前就要手动设置好。TargetTexture 需要新建一个RenderTexture 拖入到这里

然后为这个相机添加一个脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ShaderTestDeapth : MonoBehaviour
{public Material _MatDeapth;// Start is called before the first frame updatevoid Start(){}/// <summary>/// Unity自带渲染相机API/// </summary>/// <param name="src"></param>/// <param name="dest"></param>public virtual void OnRenderImage(RenderTexture src, RenderTexture dest){Graphics.Blit(src, dest, _MatDeapth);}
}


其中的_MatDeapth 为一个新建材质

1.2.2 创建一个新的Plane用来渲染透视相机的画面,创建一个新的材质球,新的Plane上面挂载一个材质球


Base(RGB)Trans(A)处为刚才新建的RenderTexture拖入进来就OK了。

1.2.3 最后的提示

层级一定要先设置好,主相机看到的应该是所有Layer 透视相机根据你的需要来选择看到的层级,我选择的是只看Cube这种模型,我给他自己分的一个层级用来测试。
相机的位置,我做的是两个相机的视野还有大小位置都是一样的,重叠的两个相机,只不过分工不同而已,还有重要的一点就是 透视的相机要放在主相机下面,作为主相机的子物体。
如图:

如果跟我的层级一样的话可以实现最终效果,透视的效果。

2.结尾

最后一步,如果两个相机重叠的话,只需要一步,把透视相机的Y轴 在我这里是Y轴稍微增加一点点0.01就可以,意思就是透视相机要显示在前面,先看到透视相机的画面,然后后面是主相机看到的画面,这样才能达到想要的效果。小伙伴们可以根据自己的需要来调试,不懂的可以问我哈。

~~欢迎转载关注评论,谢谢阅读。

Untiy相机实现游戏透视效果相关推荐

  1. Unity相机跟随游戏角色移动旋转(第三人称为主)

    在unity中相机很多时候是自动跟随玩家移动和旋转的. 我们想要实现该功能是有很多方法的,最简单的就是: 直接将相机挂载到角色上. 这样会导致很多局限性比如: A:你看到的是瞬移,而不是旋转过去. B ...

  2. Creator2D横版游戏(2)背景图随主角移动 | 单独相机拍UI

    Creator2D横版游戏(2)背景图随主角移动 上次教程做好了人物左右走,这次来做背景移动 本次目标 1.背景图跟随角色移动 2.限制背景图移动范围,不出黑边 移动背景的脚本放在canvas上 说是 ...

  3. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  4. 我用unity开发的第一款游戏demo心得

    本人目前大一,双非一本,谨以此博客,记录日后的unity学习过程与算法训练.希望能同大家一起进步!也希望三年后回过头来能看到一个优秀而拼搏的自己! 话不多说,上我的第一个demo(虽然是跟着视频做的) ...

  5. 仿ios相机apk_仿苹果相机下载

    极相机火爆来袭,快来18183下载吧! 极相机性能极佳, 反应奇快,拍摄照片和录制视频的速度比系统相机还快.极相机支持实时滤镜,可以在捕捉美景前预览照片.还支持手势操作,左右滑动即可快速在视频和拍照之 ...

  6. unity调试手机游戏(Android)【模拟器+真机】+设置运行时游戏横屏

    untiy调试手机游戏(Android)[模拟器+真机]+设置游戏横屏 模拟器调试 真机调试 设置发布游戏为横屏 注:我使用的unity版本为2021.3.2f1c1 1.将平台调整为Android ...

  7. unity 3d游戏开发_使用Unity 5开发3D游戏

    unity 3d游戏开发 If there's one thing cooler than playing games, it's building games. 如果有比玩游戏更酷的一件事,那就是构 ...

  8. Unity 2.Space Shooter(碰撞器Collider,WebGL,刚体中属性,(定时)实例化、销毁游戏对象,触碰OnTriggerEnter/Exit,爆炸效果,音频,文字,定时调方法)

    目录 项目介绍 WebGL发布 游戏对象设置 灯光.相机 背景 移动游戏对象 Debug 制作子弹 射击动作 清理离开边界的游戏对象 制作危险物 添加爆炸,移动小行星,作为预制件 创建游戏控制器 循环 ...

  9. pc适配屏幕_如何拍摄PC游戏的屏幕截图

    pc适配屏幕 Ever wish you could grab an image of what you're seeing in that beautiful new video game? Wel ...

  10. Unity相机的移动

    由于项目中开发离不开相机视角的移动缩放等等,每次重新写比较麻烦,于是小编总结了一些移动效果较好一点的代码,分鼠标事件和触摸事件(EasyTouch)的2个版本. 鼠标版代码如下: /** 1.通过鼠标 ...

最新文章

  1. Error:(1, 0) Your project path contains non-ASCII characters.
  2. SQL Server select语句执行顺序
  3. thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE
  4. SpringBootStarter种类
  5. 车载安卓导航一键root_听说比Carplay牛 率先体验华为HiCar车载互联
  6. WebBrowser控件跨域访问页面内容
  7. 勤学如春起之苗,不见其增,日有所长!
  8. larvel 路由未生效_laravel-5 – 将Laravel 5项目部署到托管后路由无效
  9. Golang的演化历程
  10. python3基础(九)内置函数
  11. 少儿编程内容(市场各年龄段热门学习软件列表)
  12. MTK手机 获取 Serial Number(barcode)
  13. 鸿蒙系统8月9日登场,华为自研鸿蒙系统将于8月9日正式登场,还有全新的鸿鹄芯片...
  14. Windows原版安装程序中diskpart使用
  15. @Transactional 的使用
  16. 做一个简单的java小游戏--单机版五子棋
  17. Web网页基础 和HTTP协议
  18. C语言实现SMTP发邮件
  19. [转]高并发高流量网站架构设计(参考)
  20. 57-混沌操作法之我见:三、突破思想.(2015.2.10)

热门文章

  1. 基桩测试软件,智博联ZBL-U5700/5600机内软件测桩模块更新软件
  2. linux锐捷代码_告诉你Ubuntu Linux锐捷安装方法及命令
  3. 点播系统加服务器加投影加音响,VOD视频点播系统的安装维护与使用
  4. 曲线与曲面积分公式整理
  5. inside MPQ
  6. 一起玩转CAN卡“第五通道”吧!
  7. 冲击波病毒内幕点滴(2) (转)
  8. 格雷码转换成二进制c语言程序,基于PLC程序实现格雷码转换成二进制码.pdf
  9. 大学生创新创业训练计划项目申请书
  10. Python3从零开始搭建一个语音对话机器人