Unity协程实现伪加载页面

先上效果图预览。
============================开始写实现方法================================
1.我用的是UGUI,先在空场景中新建Slider和text组件,拖放到适当位置上

2.然后新建脚本,代码如下
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Aegis : MonoBehaviour
{
/// <summary>
/// 进度条下方显示的文本
/// </summary>
[SerializeField]
Text Aegis_text;
/// <summary>
/// 进度条
/// </summary>
[SerializeField]
Slider slider;
/// <summary>
/// 文字后方点数显示
/// </summary>
float pointCount;
/// <summary>
/// 当前进度
/// </summary>
float progress = 0;
/// <summary>
/// 进度条读取完成时间
/// </summary>
float total_time = 3f;
/// <summary>
/// 计时器
/// </summary>
float time = 0;
void OnEnable()
{
//开启协程
StartCoroutine("AegisAnimation");
}
void Update()
{
//记录时间增量
time += Time.deltaTime;
//当前进度随着时间改变的百分比
progress = time / total_time;
if (progress >= 1)
{
return;
}
//把进度赋给进度条的值
slider.value = progress;
}
void OnDisable()
{
//关闭协程
StopCoroutine("AegisAnimation");
}
/// <summary>
/// 检测外挂协程
/// </summary>
/// <returns></returns>
IEnumerator AegisAnimation()
{//检测外挂...... 防外挂机制启动...... 启动成功...... 安全游戏......
while (true)
{
yield return new WaitForSeconds(0.1f);
float f = slider.value;
//设置进度条的value值在某个区间的时候要显示的字符串
string reminder = "";
if (f < 0.25f)
{
reminder = "检测外挂";
}
else if (f < 0.5f)
{
reminder = "启动防外挂机制";
}
else if (f < 0.75f)
{
reminder = "启动成功";
}
else
{
reminder = "进入游戏";
}
//显示字符串后面的“.”
pointCount++;
if (pointCount == 7)
{
pointCount = 0;
}
for (int i = 0; i < pointCount; i++)
{
reminder += ".";
}
//把显示内容赋给场景中的text
Aegis_text.text = reminder;
}
}
}
3.把写好的脚本拖给任意游戏物体上,我放在了Canvas上,把脚本中需要的游戏物体进行赋值。

这时候基本就完成了,可以运行看下效果。
PS:需要注意的是必须做第三步,否则程序会报空引用
如果要写协程的话,一定要记得调用协程,否则协程不会执行,调用方式为StartCoroutine("协程名称");
Unity协程实现伪加载页面的更多相关文章
- unity协程coroutine浅析
转载请标明出处:http://www.cnblogs.com/zblade/ 一.序言 在unity的游戏开发中,对于异步操作,有一个避免不了的操作: 协程,以前一直理解的懵懵懂懂,最近认真充电了一下 ...
- Unity协程(Coroutine)原理深入剖析
Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 其实协程并没有那么复杂,网上很多地方都说是多 ...
- Unity协程(Coroutine)原理深入剖析(转载)
记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是怎么样的,只是知道函数的返回值是IEnumerator类型,函数中使用yield r ...
- 【转】Unity协程(Coroutine)原理深入剖析
Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网 ...
- 聊一聊Unity协程背后的实现原理
Unity开发不可避免的要用到协程(Coroutine),协程同步代码做异步任务的特性使程序员摆脱了曾经异步操作加回调的编码方式,使代码逻辑更加连贯易读.然而在惊讶于协程的好用与神奇的同时,因为不清楚 ...
- webclient 比浏览器加载页面慢的一个问题
测试中发现webclient 比浏览器加载页面慢的一个问题:原因WebClient 支持 gzip, deflate,但是未设置 解决方案: class WebClientEx : WebClient ...
- Unity协程(Coroutine)管理类——TaskManager工具分享
博客分类: Unity3D插件学习,工具分享 源码分析 Unity协程(Coroutine)管理类——TaskManager工具分享 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处 ...
- RadioGroup+Fragment 使用Fragment的add()方法,防止使用replace每次都重新加载页面,造成资源浪费
radiogroup+fragment是很常用的主页导航控件,之前为了代码简便一直使用的replace()替换fragment,代码如下: getSupportFragmentManager().be ...
- jquery加载页面的方法
jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别. 1.$(function(){ $("#a&q ...
随机推荐
- Java集合中的细节
integer数据对比 对于Integer var = ? 在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值 ...
- redis4.0 cluster搭建
cd /root/tools wget http://pnxcvm0bq.bkt.clouddn.com/redis-4.0.9.tar.gz tar -zxvf redis-4.0.9.tar.gz ...
- 【Alpha】Scrum Meeting 8
目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第8次会议在4月12日21:00进行微信会议. 交流确认了任务进度,对下一阶段任务进行分配.时长15min. 任务分配 姓名 当前阶段任务 ...
- ReentrantLock源码
ReentrantLock与Synchronized区别在于后者是JVM实现,前者是JDK实现,属于Java对象,使用的时候必须有明确的加锁(Lock)和解锁(Release)方法,否则可能会造成死锁 ...
- cssselector元素定位
转自https://blog.csdn.net/qq_40024178/article/details/78945651 一.概述 cssSelector也是一种常用的选择器,CSS locator比 ...
- IDEA 初建Spring项目(Hello Spring)
新建项目 在文件夹中建立一个项目文件 打开项目 打开IDEA,点击Open,根据所建项目路径找到该项目 依赖注入 点击项目名右键,点击new,点击file,创建pom.xml 内容为: <pro ...
- linux启动httpd服务出现 Could not reliably determine the server`s fully qualified domain name.
安装好apache启动httpd服务时,出现httpd: Could not reliably determine the server's fully qualified domain name, ...
- BZOJ 4259 残缺的字符串
思路 同样是FFT进行字符串匹配 只不过两个都有通配符 匹配函数再乘一个\(A_i\)即可 代码 #include <cstdio> #include <algorithm> ...
- 如何在Windows上的Jupyter Notebook中安装和运行PySpark
When I write PySpark code, I use Jupyter notebook to test my code before submitting a job on the clu ...
- Go-单元测试
文章转载地址:https://www.flysnow.org/2017/05/16/go-in-action-go-unit-test.html 什么是单元测试? 单元测试一般用来测 ...