最近公司开始搞Unity3D..整个游戏..特效需求还是比较多的.关于UI部分的特效淡入淡出.看网上用的方法都是用个黑东东遮挡然后设置alpha这么搞....本大神感觉非常的low.而且很渣.故奋笔疾书借此文鄙视那些low方式.

关于这种处理用shader配合Material非常简单的.先来介绍下使用了哪些东东.

1.肯定是需要一个脚本的.本人用的C#.当然JS也是可以的. 需要把脚本bind到主摄像机..因为我们需要重载Camera的OnRenderImage借此来获得屏幕的sampler2D(就是屏幕截图吧可以这么理解 shader里面sampler2D就是一个texcood)

  1. using UnityEngine;
  2. using System.Collections;
  3. public class Test1 : MonoBehaviour {
  4. public Material ma;
  5. //初始化
  6. void Start () {
  7. ma = new Material(Shader.Find("Custom/Test3")); //创建一个材质
  8. }
  9. //这允许你使用基于shader的过滤器来处理最后的图片,
  10. //进入的图片是source渲染纹理,结果是destination渲染纹理。
  11. void OnRenderImage (RenderTexture source,  RenderTexture destination) {
  12. //拷贝源纹理到目的渲染纹理。这主要是用于实现图像效果。
  13. //Blit设置dest到激活的渲染纹理,在材质上设置source作为
  14. //_MainTex属性,并且绘制一个全屏方块。
  15. Graphics.Blit(source, destination, ma);
  16. }
  17. }

2.如果需要控制淡入淡出.就要使用材质的SetXXX接口来设置Shader的Uniform.Shader的源码如下:

  1. Shader "Custom/Test3" {
  2. Properties {
  3. _MainTex ("Base (RGB)", 2D) = "white" {}
  4. _Float1("Float1",Float) = 0.0
  5. }
  6. SubShader {
  7. Pass {
  8. CGPROGRAM
  9. #pragma vertex vert
  10. #pragma fragment frag
  11. uniform sampler2D _MainTex;
  12. uniform float _Float1;
  13. struct Input {
  14. float4 pos : POSITION;
  15. float2 uv : TEXCOORD0;
  16. };
  17. struct v2f {
  18. float4 pos : POSITION;
  19. float2 uv : TEXCOORD0;
  20. };
  21. v2f vert( Input i) {
  22. v2f o;
  23. o.pos = mul (UNITY_MATRIX_MVP, i.pos);
  24. o.uv = i.uv;
  25. return o;
  26. }
  27. float4 frag (v2f i) : COLOR {
  28. float4 outColor;
  29. outColor = tex2D( _MainTex, i.uv) + _Float1;
  30. return outColor;
  31. }
  32. ENDCG
  33. }
  34. }
  35. Fallback off
  36. }

3. 在材质中可以看到 Float1这个Float值.改变其值就会看到整个画面明显的变化.如果想黑屏就往下调.如果想白屏就往上调.

4. 最后游戏里面淡入淡入就修改材质的Float1这个值就ok了.多的就不说啦. 祝大家看的开心 玩的愉快..bye bye~

附带源码: http://download.csdn.net/detail/spiritring/6781673

Unity3D特效-场景淡入淡出的更多相关文章

  1. unity3D打造skybox淡入淡出 - 移动开发

    原地址:http://www.it2down.com/it-mobile/426479.htm 当前位置: IT异常查询网 » unity3D打造skybox淡入淡出 - 移动开发 www.it2do ...

  2. Unity3D 4.61 实现淡入淡出的场景过渡方法。

    还在学习过程中,如果有大大看到请指点. orz原来官方就有了更好的处理方法的教程,具体查看下面视屏. [Unity官方实例教程 秘密行动] Unity官方教程<秘密行动>(五) 屏幕渐变效 ...

  3. Android动画之淡入淡出

    为了更好的说明Android动画的淡入淡出效果,这里以一个场景为例: 界面上有两个View 控件,两个View交替显示,当一个View淡入显示,另一个View淡出不可见. 我们把当前要显示的View叫 ...

  4. iTween基础之CameraFade(摄像机淡入淡出)

    一.基础介绍:二.基础属性 原文地址: http://blog.csdn.net/dingkun520wy/article/details/50896420 一.基础介绍 CameraTexture: ...

  5. [转]Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)

    http://blog.csdn.net/yanzi1225627/article/details/22439119 众所周知,想要让ImageView旋转的话,可以用setRotation()让其围 ...

  6. Unity 启动画面淡入淡出

    前几天在玩我叫MT 2游戏的时候发现打开他们应用的时候发现他们Logo淡入淡出的效果做的挺好的,例如第一张是运营商腾讯的logo第二张是他们公司的游戏logo.我们也来模仿一下: 第一张图片:运营商的 ...

  7. [js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)

    javascript中,如何让一个元素(比如div)运动起来呢? 设置基本的样式,一定要让div有定位( 当然用margin的变化也可以让元素产生运动效果 ); <style> div { ...

  8. jQuery实现淡入淡出二级下拉导航菜单的方法

    本文实例讲述了jQuery实现淡入淡出二级下拉导航菜单的方法.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的导航菜单,淡入淡出二级的菜单导航,很经常见到的效果,这里使用的是jquer ...

  9. JQuery效果-淡入淡出、滑动、动画

    一.JQuery Fading方法 JQuery 有四种fade方法 1.fadeIn() 淡入                       对应也有$(selector).fadeIn(speed, ...

随机推荐

  1. hdu4352 XHXJ's LIS

    链接 这个题最不好想到的是状态的保存,也没有几亿的数组让你开,怎么保存前面出现了哪些数字. 题意让你求最长上升子序列的长度为k的数字的数目,可以是不连续的,可以保留一个状态栈,栈顶部依次更新,再保证长 ...

  2. 了解less跟sass

    less官网:http://www.bootcss.com/p/lesscss/ LESS编写技巧分享:http://www.xuanfengge.com/less-writing-skills-sh ...

  3. 报错 for input String ...

    一个String类型的数值后面有空格,如:“10001         ” 要转化成int时用     Integer.parseInt  报错 先用.trim()去掉空格 就可以转换了 这个问题其实 ...

  4. Postman 安装及使用入门教程

    安装 本文只是基于 Chrome 浏览器的扩展插件来进行的安装,并非单独应用程序. 首先,你要台电脑,其次,安装有 Chrome 浏览器,那你接着往下看吧. 1. 官网安装(别看) 打开官网,http ...

  5. CSS 3 动画2D

    动画分为两种,1,逐帧动画  组成动画的每一个画面就是一帧 2,关键帧动画,确定关键帧电脑会自动过度 动画中如果遇到不兼容的问题也是要加前缀 @-webkit-keyframes规则   @-webk ...

  6. Android Material适配 为控件设置指定背景色和点击波纹效果

    Android Material适配 为控件设置指定背景色和点击波纹效果,有需要的朋友可以参考下. 大部分时候,我们都需要为控件设置指定背景色和点击效果 4.x以下可以使用selector,5.0以上 ...

  7. 通过 Informix 系统表监控和优化数据库

    Informix 数据库系统字典表简介 Informix 数据库服务器运行时的状态信息是数据库管理员 DBA 进行系统监控和优化的必需信息来源.Informix 的状态信息在内部以 2 种方式存在,如 ...

  8. UNION并集运算

    在集合论中,两个集合(集合A和集合B)的并集是一个包含集合A和B中所有元素的集合.换句话说,如果一个元素属于任何一个输入集合,那么它也属于结果集.如图所示.

  9. GPS模块启动模式说明

    1.启动方式 GPS开机定位分为冷启动、温启动和热启动三种:  1、冷启动:以下几种情况开机均属冷启动。初次使用时;电池耗尽导致星历信息丢失时;关机状态下将接收机移动1000公里以上距离。   2、温 ...

  10. 【转】nginx+tomcat+memcached (msm)实现 session同步复制

    出现session不同步时,请放到content.xml中,实际验证有效: tomcat + memcached + nginx 实现session共享 这里重点强调如何实现linux服务器上 服务器 ...