日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Untiy相机实现游戏透视效果

發布時間:2023/12/20 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 拖入到這里

然后為這個相機添加一個腳本:

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相机实现游戏透视效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。