Unity零基础到入门 ☀️| 协程制作简单计时器
【摘要】 💚案例演示 🚩简单计时器协程中有一个yield方法是:yield return new WaitForSeconds(时间);每当碰到这个方法,意思就是要在这停止对应的时间才执行下面的方法,这个停止的时间是指协程中的时间下面看一下代码具体用法IEnumerator Test(){ Debug.Log("开始协程了"); yield return new WaitForSec...
💚案例演示
🚩简单计时器
协程中有一个yield方法是:yield return new WaitForSeconds(时间);
每当碰到这个方法,意思就是要在这停止对应的时间
才执行下面的方法,这个停止的时间是指协程中的时间
下面看一下代码具体用法
IEnumerator Test()
{
Debug.Log("开始协程了");
yield return new WaitForSeconds(3);//等待三秒执行下方代码块
Debug.Log("三秒时间到了,执行此处代码!");
}
上述代码启动协程后,先打印"开始协程了",然后等待三秒之后再打印"三秒时间到了,执行此处代码!"
我们可以利用yield return new WaitForSeconds(时间);
执行许多需要延迟的功能!
🚩通过WWW异步请求下载资源
之前有发过一篇文章介绍了在Unity中访问 URL 连接网页 和 下载图片、文件
其中下载文件
的时候就提到过,是通过协程
的方法来下载的
那这里再简单演示一下,我们拿下载下面这张图片举例!
![请添加图片描述](https://img-blog.csdnimg.cn/ff4862dd35e840938edab06ee0a33809.jpg#pic_center =300x600)
下载这张图片的代码
public IEnumerator DownTexture()
{
//下载路径
string url = "https://img-blog.csdnimg.cn/ff4862dd35e840938edab06ee0a33809.jpg";
UnityWebRequest WebRequest = new UnityWebRequest(url);
DownloadHandlerTexture Download = new DownloadHandlerTexture(true);
WebRequest.downloadHandler = Download;
yield return WebRequest.SendWebRequest();
//等待资源下载完成
while (!WebRequest.isDone)
{
yield return null;
}
if (string.IsNullOrEmpty(WebRequest.error))
{
//文件下载成功
//读取的图片
Texture2D rexture = Download.texture;
texture2D.sprite = GetSpriteByTexture(rexture);
Debug.Log("图片下载成功");
}
else
{
//文件下载失败
Debug.Log("图片下载失败");
}
}
//将texture转成image的Sprite
Sprite GetSpriteByTexture(Texture2D tex)
{
Sprite _sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
return _sprite;
}
在Unity中运行一下,结果如下
还有需要异步加载的情况都可以用到协程
比如AB包资源的异步加载
、Reaources资源的异步加载
、场景的异步加载
等等,就不在一一举例了
主要是介绍一下协程
可以用到的地方!
👥总结
本篇文章主要对协程的概念
、原理
、使用
和简单案例
做了一个介绍说明
真正做项目的时候协程用到的地方也是很多
借助本篇文章可以让你对Unity中的协程有一个简单的概念
和使用
,具体用到的时候可以加深印象!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)