unity使用协程简单实现渐明渐暗的过渡效果
一、前言
在游戏中,经常遇到不同关卡,不同场景之间的过渡,而渐明渐暗则是其中一种比较简单自然的过渡效果,本文则是介绍如何用协程实现此效果。
二、原理
- 控制图片的不透明度实现渐明渐暗
- 使用协程可以在我们需要过渡的时候再调用,节省性能
三、步骤
- 场景UI中放一张黑色Image图片(布满屏幕)
- 新建一个脚本输入以下代码,挂在黑色图片上
private float speed = 2f;//渐明渐暗的速度private Image image;//当前物体的image组件,记得加上using UnityEngine.UI的命名空间private void Start(){image = transform.GetComponent<Image>();StartCoroutine(BeBright());//开始渐明}Public void PassLevel()//通关或场景过渡时调用此函数使用渐暗效果{StartCoroutine(BeDark());}IEnumerator BeDark()//渐暗{while (1 - image.color.a > 0.05f){image.color = Color.Lerp(image.color, new Color(0, 0, 0, 1), speed *Time.deltaTime);//用逐步增加图片不透明度来yield return null;//代表每一帧执行返回一次,相当于在update中执行,但比update要节省性能}//在此可以写变暗之后的逻辑}IEnumerator BeBright()//渐明{while (image.color.a > 0.05f){image.color = Color.Lerp(image.color, new Color(0, 0, 0, 0), speed *Time.deltaTime);yield return null;//代表每一帧执行返回一次,相当于在update中执行,但比update要节省性能}//在此可以写变明之后的逻辑}
unity使用协程简单实现渐明渐暗的过渡效果相关推荐
- unity协程_[C#进阶]C#实现类似Unity的协程
使用过Unity的同学一定知道,Unity提供了一套协程机制,简直不要太好用.但是这个协程依赖于Unity引擎,离开Unity就无法使用.那有没有办法实现不依赖Unity的协程呢?答案是当然阔以. 所 ...
- unity update 协程_Unity 协程的原理
Unity 协程的原理 发布时间:2019-06-13 18:45, 浏览次数:1118 , 标签: Unity 协程不是多线程,协程还是在主线程里面(注:在Unity中非主线程是不可以访问Unity ...
- Unity的协程详解
一.协程的定义 协程,即为协同程序. Unity中的协程由协程函数和协程调度器两部分构成.协程函数使用的是C#的迭代器, 协程调度器则利用了MonoBehaviour中的生命周期函数来实现. 协程函数 ...
- Unity通过协程实现回合制战斗
Unity通过协程实现回合制战斗(一.1v1部分) - 技术专栏 - Unity官方开发者社区本文详细地阐述了如何实现回合制战斗,从配置文件到战斗数据,最后再通过协程实现战斗 - Unity技术专栏是 ...
- Unity中协程与线程的区别
本文转载自:https://blog.csdn.net/qq_25122429/article/details/80481443 协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆 ...
- Unity使用协程技术制作倒计时器
先上效果图 图片资源来自http://www.51miz.com/ 1.素材准备 在http://www.51miz.com/搜索png格式的数字图片,用Unity自带的图集制作工具,进行分割.Con ...
- Unity 模拟协程实现计时器功能
众所周知,在Unity里面开启协程会有消耗,有时候就算我们只需要用到一个简单的计时器,必须开一个协程或者自己写一个计时器.这里提供了一个通用的计时器类,里面还实现了内存池管理,使用完的计时器回收备用. ...
- Unity 的协程的原理
Unity是一款非常强大的游戏引擎,它支持多种编程语言,其中最常用的语言是C#.在Unity中,协程是一种非常强大的功能,它可以让我们在游戏中实现各种各样的效果.本文将详细介绍Unity协程的原理,并 ...
- Unity中协程的yield return
记录Unity中对于协程常用的一些操作 不管是对于网络请求或加载资源时以及一些相对来说比较耗费时间的运算时,我们不希望会全部写在Update中来占用大量主线程的资源. 协程 : IEnumerator ...
最新文章
- 合并单元格两行_28 HTML5标签学习——table单元格的合并
- Linux0.11进程切换和TSS结构
- java的drawstring_java-Graphics.drawString()未绘制
- Linux crontab 命令格式与详细例子
- EXE与SYS通信(直接访问模式)
- SparkStreaming之transform
- 任意文件下载漏洞学习
- 机器学习、数据科学、深度学习、可视化常用方法速查手册总结分享
- Spring BeanFactory和FactoryBean的区别
- 北京计算机应用基础考试时间,07年北京市自学考试计算机应用基础课周末开考...
- android wps mac 下载地址,wps for mac下载
- 《洞见》罗伯特·赖特
- 为孩子进行启蒙教育的6种基本思维导图类型分析
- 【魏先生搞定Python系列】一文搞定SQLAlchemy学习与使用
- 【两次过】【2017腾讯】字符移位
- 怎么上传云班课的计算机作业,云班课作业怎么提交_作业提交方法_咖绿茵手游站...
- magicmatch java_签名图片一键批量生成 使用Java的Webmagic爬虫实现
- pythoncookie自动登录_Python使用cookie 免密登录了解一下
- spring源码系列一--BeanDefinition
- Mysql学习笔记(全)
热门文章
- 华为在发布会带来了harmonyos,华为HarmonyOS 2.0正式发布,共赢移动终端产业的下一个十年...
- 1的恋爱机会 好朋友:世间的一切(1)
- DataReader与DataSet,DataGrid与DataList
- 移动端IOS使用EasyAr实现非unity(unity)案例介绍
- VC++实时检测耳机的插入与拔出(附源码)
- vscode(mac)常用快捷键
- STM8S903K3T6C基于IAR开发GPIO点灯示例
- 苹果系统和windows系统怎么切换_【电脑】在windows系统上安装苹果Mac系统
- 高数篇(一)-- Gamma 函数 VS Beta 函数
- 第十二篇 GoogLeNet——网络实战