Unity3D特效-场景淡入淡出
最近公司开始搞Unity3D..整个游戏..特效需求还是比较多的.关于UI部分的特效淡入淡出.看网上用的方法都是用个黑东东遮挡然后设置alpha这么搞....本大神感觉非常的low.而且很渣.故奋笔疾书借此文鄙视那些low方式.
关于这种处理用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打造skybox淡入淡出 - 移动开发
原地址:http://www.it2down.com/it-mobile/426479.htm 当前位置: IT异常查询网 » unity3D打造skybox淡入淡出 - 移动开发 www.it2do ...
- Unity3D 4.61 实现淡入淡出的场景过渡方法。
还在学习过程中,如果有大大看到请指点. orz原来官方就有了更好的处理方法的教程,具体查看下面视屏. [Unity官方实例教程 秘密行动] Unity官方教程<秘密行动>(五) 屏幕渐变效 ...
- Android动画之淡入淡出
为了更好的说明Android动画的淡入淡出效果,这里以一个场景为例: 界面上有两个View 控件,两个View交替显示,当一个View淡入显示,另一个View淡出不可见. 我们把当前要显示的View叫 ...
- iTween基础之CameraFade(摄像机淡入淡出)
一.基础介绍:二.基础属性 原文地址: http://blog.csdn.net/dingkun520wy/article/details/50896420 一.基础介绍 CameraTexture: ...
- [转]Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)
http://blog.csdn.net/yanzi1225627/article/details/22439119 众所周知,想要让ImageView旋转的话,可以用setRotation()让其围 ...
- Unity 启动画面淡入淡出
前几天在玩我叫MT 2游戏的时候发现打开他们应用的时候发现他们Logo淡入淡出的效果做的挺好的,例如第一张是运营商腾讯的logo第二张是他们公司的游戏logo.我们也来模仿一下: 第一张图片:运营商的 ...
- [js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)
javascript中,如何让一个元素(比如div)运动起来呢? 设置基本的样式,一定要让div有定位( 当然用margin的变化也可以让元素产生运动效果 ); <style> div { ...
- jQuery实现淡入淡出二级下拉导航菜单的方法
本文实例讲述了jQuery实现淡入淡出二级下拉导航菜单的方法.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的导航菜单,淡入淡出二级的菜单导航,很经常见到的效果,这里使用的是jquer ...
- JQuery效果-淡入淡出、滑动、动画
一.JQuery Fading方法 JQuery 有四种fade方法 1.fadeIn() 淡入 对应也有$(selector).fadeIn(speed, ...
随机推荐
- io流操作大全
JAVA 中的IO流 一.流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部 ...
- MFC编程入门之十一(对话框:模态对话框及其弹出过程)
加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有了些解了,有个好的开始对于以后的学习大有裨益.趁热打铁,这一节讲讲什么是对话框和非模态对话框,以及模态对话框怎样弹出. 一.模态对话框和非 ...
- Probit回归模型
Probit模型也是一种广义的线性模型,当因变量为分类变量时,有四种常用的分析模型: 1.线性概率模型(LPM)2.Logistic模型3.Probit模型4.对数线性模型 和Logistic回归一样 ...
- 如何有效使用Project(1)——编制进度计划、保存基准
1.前言: 软件产品的研发.升级.定制等,一般都是以项目的形式进行,此时项目进度计划以及资源使用情况就变成了项目经理关注的重点.如何让项目计划有效可控,及时暴露问题?如何查看资源的负荷情况,看资源分配 ...
- IT公司100题-27-跳台阶问题
问题描述: 一个台阶总共有n阶,一次可以跳1级或者2级.求总共有多少种跳法. 分析: 用f(n)表示n阶台阶总共有多少种跳法.n阶台阶,第一可以选择跳1阶或者2阶,则f(n) = f(n-1) + ...
- Rhel6-cacti+nagios+ganglia(apache)配置文档
(lamp平台) 系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.119 server19.example.com 1 ...
- 收藏的牛人的Backbone分享教程
http://yujianshenbing.iteye.com/category/256978 感谢御剑神兵,目前正在看,为源码分析做准备. 今天是2015年4月13号,看了前两篇,
- Ubuntu user switch
To list all users you can use: cut -d: -f1 /etc/passwd To add a new user you can use: sudo adduser n ...
- Python的平凡之路(6)
一.面向对象编程介绍 1 编程范式: 编程范式(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式.随着编程方法学和软件工程研究的深入,特别是OO ...
- 模仿MFC封装Windows API
.... 最后添加了两个按钮,分别处理每个按钮的单击事件时,走了弯路,本来想的是在QButton中重写OnLButtonDown方法,但是,无法区分是那个按钮.参考这篇文章: http://zhida ...