Unity中的淡入淡出效果
一、问题
想要在场景的转换做个过渡,不想直接的跳转。最简单的就是做个淡入淡出的效果。
二、搜索
百度基本是不指望了,资料太少,所以要用google,并且英文搜索。
搜关键字"unity3d change scene effect"(学会一点外语是多么的重要啊)
http://answers.unity3d.com/questions/8237/changing-scenes.html
还发现一个插件:
http://gameprefabs.com/products/preview/107
三、代码
using UnityEngine; using System.Collections;public class LevelLoadFade : MonoBehaviour {public static void FadeAndLoadLevel(string levelName, Texture2D fadeTexture, float fadeLength){if (null == fadeTexture){FadeAndLoadLevel(levelName, Color.white, fadeLength);}GameObject fade = new GameObject("Fade");fade.AddComponent<LevelLoadFade>();fade.GetComponent<LevelLoadFade>().DoFade(levelName, fadeLength, fadeTexture, Color.white, false); }public static void FadeAndLoadLevel(string levelName, Color color, float fadeLength){color.a = 1;Texture2D fadeTexture = new Texture2D(1, 1);fadeTexture.SetPixel(0, 0, color);fadeTexture.Apply();DontDestroyOnLoad(fadeTexture);GameObject fade = new GameObject("Fade");fade.AddComponent<LevelLoadFade>();fade.GetComponent<LevelLoadFade>().DoFade(levelName, fadeLength, fadeTexture, color, true);}private Texture2D m_FadeTexture;private Rect m_Rect;private Color m_Color;void Awake(){m_Rect = new Rect(0, 0, Screen.width, Screen.height);m_FadeTexture = null;}void OnGUI(){if (m_FadeTexture != null){GUI.depth = -100;GUI.color = m_Color;GUI.DrawTexture(m_Rect, m_FadeTexture);}}void DoFade(string levelName, float fadeLength, Texture2D fadeTexture, Color color, bool destroyTexture){transform.position = Vector3.zero;// Don't destroy the fade game object during level load DontDestroyOnLoad(gameObject);m_Color = color;m_FadeTexture = fadeTexture;StartCoroutine(DoCoroutineFade(levelName, fadeLength, fadeTexture, color, destroyTexture));}IEnumerator DoCoroutineFade(string levelName, float fadeLength, Texture2D fadeTexture, Color color, bool destroyTexture){// Fade texture infloat time = 0;while (time < fadeLength){time += Time.deltaTime;m_Color.a = Mathf.InverseLerp(0, 1, time/fadeLength);yield return null;}// Fadeout to start withcolor.a = 1;Application.LoadLevel(levelName);// Fade texture outtime = 0;while (time < fadeLength){time += Time.deltaTime;m_Color.a = Mathf.InverseLerp(1, 0, time/fadeLength);yield return null;}m_Color.a = 0;m_FadeTexture = null;Destroy(gameObject);if (destroyTexture){Destroy(m_FadeTexture);}}// Update is called once per framevoid Update () {} }
这边用的是
Application.LoadLevel
所以,会阻塞,如果是差的机子,还是会卡在你的Fade的画面,如果用的是异步的
Application.LoadLevelAsync
那就会是把淡入和淡出一起播了。。然后再卡住。。这个可能得再考虑下,主要是异步的加载完成给的值不太准,似乎没法拿来用做完成进度百分比判断。
四、总结
其实我想的效果是在淡出的时间就开始加载,然后再没加载完的时候就卡在Fade的界面,之后再淡入。不过这淡入淡出的效果在好的机子上的效果还是不错的,大家可以试试看。
转载于:https://www.cnblogs.com/gameprogram/archive/2012/08/14/2638454.html
Unity中的淡入淡出效果相关推荐
- Unity实现屏幕淡入淡出效果
预期效果:为实现在进入新场景时的淡入淡出效果 编译器版本:2021.3.19f1c1 使用组件:UI --> RawImage 在Unity场景切换的时候,使用RawImage制作场景的淡入淡出 ...
- html5游戏开发马赛克对比,HTML5如何在canvas中实现马赛克的淡入淡出效果
HTML5如何在canvas中实现马赛克的淡入淡出效果 发布时间:2020-07-10 16:43:07 来源:亿速云 阅读:145 作者:Leah 本篇文章给大家分享的是有关HTML5如何在canv ...
- 《迷失岛2》游戏开发框架开发日记:场景切换和淡入淡出效果
M_Studio的教程:[<迷失岛2>游戏框架开发01:实现场景转换|Unity教程] 搭建场景 使用下载好的素材搭建场景H1-H4和H2A.永久的场景Persistent,将场景都拖拽到 ...
- 004_淡入淡出效果
1. jQuery淡入淡出方法 1.1. 通过jQuery, 您可以实现元素的淡入淡出效果. 1.2. jQuery拥有下面四种fade方法: fadeIn().fadeOut().fadeToggl ...
- 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装, 有用得着的朋友, 可以直接使用. 代码中另附有一个设置元素透 ...
- 使用Tesseract (OCR)实现简单的验证码识别(C#)+窗体淡入淡出效果
来园子也有一段时间了,一直没时间写点东西,说实话刚开始也不知道写什么,一直以来对验证码识别比较感兴趣,曾经想着自己处理图形实现识别验证码, 不过感觉对我来说太难了,偶然中再网上发现了Tesseract ...
- 【转】C#使用GDI+制作背景颜色淡入淡出效果的按钮
C#使用GDI+制作背景颜色淡入淡出效果的按钮 2010-04-14 来自:CNBLOG 字体大小:[大 中 小] 摘要:本文介绍C#使用GDI+制作背景颜色淡入淡出效果的按钮,并提供完整的示例和 ...
- 利用API函数实现图像淡入淡出效果(VB)
利用API函数实现图像淡入淡出效果 一般传统的实现两个PictureBox之间图像的淡入淡出效果都需要使用大量的API函数并进行复杂的调色板以及 绘图设备(Device Context)的操作 ...
- 利用API函数实现图像淡入淡出效果 (转)
利用API函数实现图像淡入淡出效果 (转)[@more@]利用 api 函数实现图像淡入淡出效果 一般传统的实现两个PictureBox之间图像的淡入淡出效果都需要使用大量的API函数并进行复杂的调色 ...
最新文章
- Amoeba软件实现mysql读写分离
- linux代码中能出现中文吗_Linux命令很熟悉,你知道它们的英文全称和中文解释吗?...
- Eclipse+Web3j开发以太坊应用
- 游戏开发-从零开始 002
- linux内核的冒险md来源释义# 14raid5非条块读
- 重复数据删除:块级技术VS.字节级技术
- php中Session的生成机制、回收机制和存储机制探究
- 查看手机是否安装微信客户端
- java 多线程统计质数,Java 七 多线程计算某个范围内的质数
- 数据爆炸时代,浪潮K1 Power释放新算能
- python内置的数据结构_Python内置数据结构
- JZOJ 1036. 【SCOI2009】迷路
- 百度、谷歌、亚马逊、微软神同步:被盯上的智能语音排位赛
- Druid连接池原理
- 2022,共赴一场微小的,具象的英雄主义
- 基于Retrofit框架的金山API翻译功能案例
- C语言作业3-数组-2英文句子逆向输出
- 网络应用自建利器-Google AppEngine
- scala sortBy and sortWith
- 告别神秘客,人力成本节约90%,DuDuTalk工牌用AI帮你智慧巡店
热门文章
- python 调用event handler_python-如何获取调用事件的窗口小部件的ID(...
- 韶音耳机连不上电脑_骨传导耳机哪个牌子好,骨传导耳机推荐
- 华为亮度自动调节没了_一加8T不止有8192级自动亮度调节 刘作虎在线种草
- 1.72java8_JDK 1.7 1.8 新特性
- java frame paint_一个简单的java frame画图(paint)问题
- 非锐化掩膜与高提升滤波
- linux vg 镜像,Linux下载_Linux系统各种版本ISO镜像下载(redhat,centos,oracle,ubuntu,openSUSE)...
- Javascript实现网页水印(非图片水印)
- Windows Server 2012配置***服务环境
- Codeforces Round #335 (Div. 2)