Untiy相机实现游戏透视效果
前言:(說一些廢話)小伙伴們在玩網游類似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 拖入到這里。
然后為這個相機添加一個腳本:
其中的_MatDeapth 為一個新建材質
1.2.2 創建一個新的Plane用來渲染透視相機的畫面,創建一個新的材質球,新的Plane上面掛載一個材質球
Base(RGB)Trans(A)處為剛才新建的RenderTexture拖入進來就OK了。
1.2.3 最后的提示
層級一定要先設置好,主相機看到的應該是所有Layer 透視相機根據你的需要來選擇看到的層級,我選擇的是只看Cube這種模型,我給他自己分的一個層級用來測試。
相機的位置,我做的是兩個相機的視野還有大小位置都是一樣的,重疊的兩個相機,只不過分工不同而已,還有重要的一點就是 透視的相機要放在主相機下面,作為主相機的子物體。
如圖:
如果跟我的層級一樣的話可以實現最終效果,透視的效果。
2.結尾
最后一步,如果兩個相機重疊的話,只需要一步,把透視相機的Y軸 在我這里是Y軸稍微增加一點點0.01就可以,意思就是透視相機要顯示在前面,先看到透視相機的畫面,然后后面是主相機看到的畫面,這樣才能達到想要的效果。小伙伴們可以根據自己的需要來調試,不懂的可以問我哈。
~~歡迎轉載關注評論,謝謝閱讀。
總結
以上是生活随笔為你收集整理的Untiy相机实现游戏透视效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周末,说下我喜欢的篮球
- 下一篇: 那些喝吐的酒~