Unity3D特效-场景淡入淡出
2013-12-28 16:41
351 查看
最近公司开始搞unity3d..整个游戏..特效需求还是比较多的.关于UI部分的特效淡入淡出.看网上用的方法都是用个黑东东遮挡然后设置alpha这么搞....本大神感觉非常的low.而且很渣.故奋笔疾书借此文鄙视那些low方式.
关于这种处理用shader配合Material非常简单的.先来介绍下使用了哪些东东.
1.肯定是需要一个脚本的.本人用的C#.当然JS也是可以的. 需要把脚本bind到主摄像机..因为我们需要重载Camera的OnRenderImage借此来获得屏幕的sampler2D(就是屏幕截图吧可以这么理解 shader里面sampler2D就是一个texcood)
2.如果需要控制淡入淡出.就要使用材质的SetXXX接口来设置Shader的Uniform.Shader的源码如下:
3. 在材质中可以看到 Float1这个Float值.改变其值就会看到整个画面明显的变化.如果想黑屏就往下调.如果想白屏就往上调.
4. 最后游戏里面淡入淡入就修改材质的Float1这个值就ok了.多的就不说啦. 祝大家看的开心 玩的愉快..bye bye~
附带源码: http://download.csdn.net/detail/spiritring/6781673
关于这种处理用shader配合Material非常简单的.先来介绍下使用了哪些东东.
1.肯定是需要一个脚本的.本人用的C#.当然JS也是可以的. 需要把脚本bind到主摄像机..因为我们需要重载Camera的OnRenderImage借此来获得屏幕的sampler2D(就是屏幕截图吧可以这么理解 shader里面sampler2D就是一个texcood)
using UnityEngine; using System.Collections; public class Test1 : MonoBehaviour { public Material ma; //初始化 void Start () { ma = new Material(Shader.Find("Custom/Test3")); //创建一个材质 } //这允许你使用基于shader的过滤器来处理最后的图片, //进入的图片是source渲染纹理,结果是destination渲染纹理。 void OnRenderImage (RenderTexture source, RenderTexture destination) { //拷贝源纹理到目的渲染纹理。这主要是用于实现图像效果。 //Blit设置dest到激活的渲染纹理,在材质上设置source作为 //_MainTex属性,并且绘制一个全屏方块。 Graphics.Blit(source, destination, ma); } }
2.如果需要控制淡入淡出.就要使用材质的SetXXX接口来设置Shader的Uniform.Shader的源码如下:
Shader "Custom/Test3" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Float1("Float1",Float) = 0.0 } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag uniform sampler2D _MainTex; uniform float _Float1; struct Input { float4 pos : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 pos : POSITION; float2 uv : TEXCOORD0; }; v2f vert( Input i) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, i.pos); o.uv = i.uv; return o; } float4 frag (v2f i) : COLOR { float4 outColor; outColor = tex2D( _MainTex, i.uv) + _Float1; return outColor; } ENDCG } } Fallback off }
3. 在材质中可以看到 Float1这个Float值.改变其值就会看到整个画面明显的变化.如果想黑屏就往下调.如果想白屏就往上调.
4. 最后游戏里面淡入淡入就修改材质的Float1这个值就ok了.多的就不说啦. 祝大家看的开心 玩的愉快..bye bye~
附带源码: http://download.csdn.net/detail/spiritring/6781673
相关文章推荐
- Unity3D特效-场景淡入淡出
- Unity3D特效-场景淡入淡出
- Unity3D特效-场景淡入淡出
- Unity3D 4.61 实现淡入淡出的场景过渡方法。
- Unity3D 场景切换与持久化简单数据储存(PlayerPrefs类)
- Cocos2d-X研究之3.0 场景切换特效汇总
- 使用Cocos2d-x 和粒子编辑器实现“天天爱消除”场景特效
- unity3d 简单水下特效
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3D淡入淡出场景跳转
- Unity3d 游戏场景优化 - LOD(Level-of-detail)
- [Unity3d]场景管理插件-SceneManager
- [unity3d]场景烘焙
- Android游戏开发之切换游戏场景特效的实现 (十九)
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3D C#学习小结(六)[使用TrailRender做漂亮的特效]
- [Unity3D]Unity3D游戏开发之刀光剑影特效的实现
- 使用Cocos2d-x 和粒子编辑器实现“天天爱消除”场景特效
- 特效天地——淡入淡出(真彩模式)
- 一款基于jQuery的图片场景标注提示弹窗特效