当前位置: 首页 > news >正文

Unity3D 基础——Coroutine 协同程序

Coroutine 称为协同程序或者协程,协同程序可以和主程序并行运行,和多线程有些类似。协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如,执行步骤1,等待3秒;执行步骤2,等待某个条件为 true;执行步骤3......

在Unity3D 中,使 MonoBehaviour.StartCoroutine 方法即可开启一个协同程序,也就是说该方法必须在 MonoBehaviour 类或继承于 MonoBehaviour 的类中调用。

MonoBehaviour-StartCoroutine - Unity 脚本 APIicon-default.png?t=N7T8https://docs.unity.cn/cn/current/ScriptReference/MonoBehaviour.StartCoroutine.html

使用协同程序

在 C# 中,协同函数的返回类型必须为 IEnumerator。

1.新建脚本 CoroutineExample,代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CoroutineExample : MonoBehaviour
{IEnumerator Start(){Debug.Log("Start: " + Time.time);yield return StartCoroutine(WaitAndDebug());Debug.Log("Done: " + Time.time);}IEnumerator WaitAndDebug(){yield return new WaitForSeconds(5);Debug.Log("WaitAndDebug: " + Time.time);}

2.运行结果

(可以随便把脚本绑在个物体上)

http://www.lryc.cn/news/198083.html

相关文章:

  • IDEA报错:前言中不允许有内容
  • 在线课堂分销商城小程序源码系统 带完整搭建教程
  • 【存储系统】0. 序
  • 逐字稿 | 2 MoCo 论文逐段精读【论文精读】
  • 【数据结构】排序算法的稳定性分析
  • Redis AOF持久化和ReWrite
  • Flink学习之旅:(一)Flink部署安装
  • Go语言入门心法(六): HTTP面向客户端|服务端编程
  • 为什么非const静态成员变量一定要在类外定义
  • 千兆光模块和万兆光模块的区别?
  • 中断:Zynq Uart中断的流程和例程~UG585的CH.19
  • 计算机补码能够减法转加法的原因
  • 软件工程与计算总结(十九)软件测试
  • Tomcat设置IP黑名单和白名单server.xml
  • 【AI视野·今日NLP 自然语言处理论文速览 第五十五期】Mon, 16 Oct 2023
  • k8s crd设置额外header
  • 电容笔好还是触屏笔好?便宜又好用的电容笔推荐
  • 列表作为条件查询的参数
  • elementui中el-select和el-tree实现下拉树形多选功能
  • 手机怎么监控电脑?
  • 职场题:有一件特别紧急的事,群众要办理,且联系不上领导,你怎么办?(2)
  • 《深入理解java虚拟机 第三版》学习笔记一
  • webGL编程指南 第三章 旋转三角形
  • 网络安全是什么?一文认识网络安全
  • LeetCode 2897. 对数组执行操作使平方和最大【贪心,位运算,哈希表】2301
  • linux加密安全和时间同步
  • 在Go中处理异常
  • rust 全局变量
  • 使用Python的qrcode库生成二维码
  • MSQL系列(四) Mysql实战-索引分析Explain命令详解