本文实例为大家分享了Unity Shader实现2D游戏迷雾的具体代码,供大家参考,具体内容如下
先看效果吧。
我使用的是屏幕后处理效果,首先先去Photoshop做一张图片如下,用画笔点一个点就可以了,使用它来对摄像机截取的图片进行处理。
在摄像机上添加脚本文件
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestScript : MonoBehaviour { [Range(0,3)] public float Lerp = 0;//使用它来调整可视区域的大小 public Texture2D MaskTex; public Shader ScreanShader; public Material GetMaterial { get { if(_material ==null) _material = new Material(ScreanShader); return _material; } } private Material _material = null; //src是摄像机截取到的照片,dest是处理过的图片 void OnRenderImage(RenderTexture src, RenderTexture dest) { GetMaterial.SetTexture("_MainTex", src); GetMaterial.SetTexture("_MaskTex", MaskTex); GetMaterial.SetFloat("_Lerp", Lerp); Graphics.Blit(src, dest, GetMaterial); } }
对应的shader,思路就是把MaskTex的颜色翻转一下然后直接乘上去就可以了,小数越乘越小,越小颜色越黑。
Shader "Wzhhh/MyShader2" { Properties{ _MainTex("MainTex",2D) = "white"{} _MaskTex("MaskTex",2D) = "white"{} _Lerp("Lerp",Range(0,3)) = 1 } SubShader{ Pass{ Tags{ "LightMode" = "ForwardBase" } CGPROGRAM #include "Lighting.cginc" #pragma vertex vert #pragma fragment frag sampler2D _MaskTex; sampler2D _MainTex; float4 _MainTex_ST; float _AlphaBase; float _Lerp; struct a2v { float4 vertex : POSITION; float2 texcoord : TEXCOORD0; }; struct v2f { float4 pos : SV_POSITION; fixed2 uv : TEXCOORD0; }; v2f vert(a2v i) { v2f o; o.pos = UnityObjectToClipPos(i.vertex); o.uv = TRANSFORM_TEX(i.texcoord, _MainTex); return o; } fixed4 frag(v2f o) :SV_TARGET{ fixed4 color = tex2D(_MaskTex, o.uv); color.r = 1 - color.r; color.g = 1 - color.g; color.b = 1 - color.b; fixed4 color2 = tex2D(_MainTex, o.uv); color2.r *= color.r*_Lerp; color2.g *= color.g*_Lerp; color2.b *= color.b*_Lerp; return color2; } ENDCG } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍C++实现走迷宫小游戏,包括了C++实现走迷宫小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++实现走迷宫小游戏的具体代码,供大家参考,具体内容如下 源码下载:C++实现走迷宫小游戏 主程序代码: 更多C++精彩小游戏请点击专题:经典游戏 进行学习 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C++ 迷宫游戏实现代码,包括了C++ 迷宫游戏实现代码的使用技巧和注意事项,需要的朋友参考一下 C++ 迷宫游戏实现代码 题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。 1、程序分析 走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出迷宫,反之,亦然。 step1 创建迷宫类,打印出迷宫地图。
我正在尝试制作我的第一个Pacman游戏,但我遇到了一堵我自己似乎无法打破的墙:( 这是关于如何在我的游戏中检测碰撞,所以步行者不能穿过障碍物/墙壁。我已经使它不能去屏幕外与此代码: ,但如果我在屏幕中间的电路板上有一个矩形,我不知道如何编程,这样它就会在墙前停止。 我需要阻止我的pacman移动到竞技场内的墙上,如你所见(左上方的矩形) 我的Board类代码: 希望有人能告诉我该怎么做...似乎
包含在程序启动时启动的线程。这个线程包含一个循环,每40毫秒更新一次游戏并重新绘制()board。 备选办法B: 板创建一个摆动计时器。这个计时器的动作监听器是板本身。actionPerformed()方法每40毫秒运行一次,并更新game+repaints Board()。 谢谢
问题内容: 我正在做一个简单的游戏,例如马里奥游戏,角色固定在一个位置,地面向左移动,给人一种角色移动的幻觉。地面由由左上角和右下角坐标定义的矩形块组成: 跳跃只是在向左移动表面的同时更改角色的y坐标,因此跳跃看起来像倒转的字母。 其余代码- 动画,移动精灵-与http://zetcode.com/tutorials/javagamestutorial/movingsprites/非常相似 我希望
本文向大家介绍Java小项目之迷宫游戏的实现方法,包括了Java小项目之迷宫游戏的实现方法的使用技巧和注意事项,需要的朋友参考一下 项目要求: 一个网格迷宫由n行n列的单元格组成,每个大院个要么是空地(用0表示),要么是障碍物(用1表示),你的任务是找一条从起点到终点的移动序列,其中只能上下左右移动到相邻单元格。任何时候都不能在有障碍物的单元格中,也不能走到迷宫之外,起点为左上角和终点右下角。 项