UnityAPI学习之协程原理与作用

news2025/3/1 14:02:02

协程的原理与作用

Unity 协程(Coroutine)原理与用法详解_unity coroutine-CSDN博客

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NO14_coroutine : MonoBehaviour
{
    Animator animator;
    // Start is called before the first frame update
    void Start()
    {
        animator = transform.GetComponent<Animator>();
        //开启协程
        //StartCoroutine("Grisplay");
        IEnumerator ie = Grisplay();
        StartCoroutine(ie);
        //停止协程
        //StopCoroutine("Grisplay");
        StopCoroutine(ie);

        //StopAllCoroutines();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    IEnumerator Grisplay()
    {
        //暂停几秒(协程挂起)
        yield return new WaitForSeconds(2);
        print("Run");
        animator.Play("Gris_Run");
        //等待一帧,与参数无关
        yield return null;
        yield return 10000;
        print("no!!!");
        //在帧末执行以下逻辑
    }
}

协程开始与停止方式

1.

StartCoroutine("Grisplay");

StopCoroutine("Grisplay");

2.将协程对象转换为IEnumerator类型变量

IEnumerator ie = Grisplay();

StartCoroutine(ie);

StopCoroutine(ie);

注:以上两种协程开始与停止的两种方式必须配套使用不能混搭,StopAllCoroutines()可以停止所有不管任何方式开启的协程

示例1:用携程创造5个Gris,运用到协程传参和协程的嵌套调用,使所有克隆体和本体都进行Gris_Run动画

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NO14_coroutine : MonoBehaviour
{
    public Animator animator;
    //public int grisCount = 5;
    public int grisNum = 0;
    // Start is called before the first frame update
    void Start()
    {
        
        //开启协程
        //StartCoroutine("Grisplay");
        /*IEnumerator ie = Grisplay();
        StartCoroutine(ie);*/
        //停止协程
        //StopCoroutine("Grisplay");
        //StopCoroutine(ie);

        //StopAllCoroutines();
        StartCoroutine("CreateGris",5);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    IEnumerator CreateGris(int grisCount)
    {
        print(grisCount);
        StartCoroutine(Grisplay(animator));
        while (true)
        {
            if (grisNum >= grisCount)
            {
                yield break;
            }
            GameObject g = Instantiate(animator.gameObject);
            StartCoroutine(Grisplay(g.transform.GetComponent<Animator>()));
            grisNum++;
            yield return new WaitForSeconds(2);
        }
    }

    IEnumerator Grisplay(Animator g)
    {
        
        //等待一帧,与参数无关
        yield return null;
        yield return 10000;
        print("no!!!");
        //暂停几秒(协程挂起)
        yield return new WaitForSeconds(2);
        print("Run");
        g.Play("Gris_Run");
        //在本帧帧末执行以下逻辑
        yield return new WaitForEndOfFrame();
    }
    
}

注:若要对协程进行传参则需要使用上面所讲的第二种开始和结束协程的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1823127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入掌握SystemVerilog验证:《SystemVerilog验证 测试平台编写指南》(可下载)

在数字设计的世界中&#xff0c;验证是确保硬件设计满足预期功能和性能要求的关键步骤。SystemVerilog作为一种先进的硬件描述语言&#xff0c;以其强大的验证特性&#xff0c;成为了设计和验证工程师的首选工具。 1. SystemVerilog验证的重要性 在数字设计流程中&#xff0c…

javaWeb项目-ssm+vue在线购物系统功能介绍

本项目源码&#xff1a;java-ssmvue在线购物系统的设计与实现源码说明文档资料资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;sprin…

[Nacos]No spring.config.import property has been defined

在学习 Spring Cloud Alibaba &#xff0c;Nacos组件&#xff0c;创建一个cloudalibaba-config-nacos-client&#xff0c;加载多配置集时遇到问题 配置了 bootstrap.yml 后启动项目报错&#xff1a; 是因为在springcloud 2020.0.2版本中把bootstrap的相关依赖从spring-cloud-s…

Python 中国象棋游戏【含Python源码 MX_011期】

简介&#xff1a; 中国象棋是一种古老而深受喜爱的策略棋类游戏&#xff0c;也被称为中国的国粹之一。它在中国有着悠久的历史&#xff0c;起源可以追溯到几个世纪以前。Python 中国象棋游戏是一个用Python编程语言编写的软件程序&#xff0c;旨在模拟和提供中国象棋的游戏体验…

一键获取CPU详情:Python最强查询工具实战教程

要在 Python 中查询 CPU 信息,可以使用多个强大的工具和库.以下是一些最常用和强大的库,可以帮助你获取详细的 CPU 信息&#xff1a; 1.psutil 2.cpuinfo 3.platform 4.os 1. 使用 psutil 库 psutil 是一个跨平台库,提供了获取系统和进程信息的便捷方法.它不仅可以获取 C…

I/O Stream设计实验

实验要求和目的 深入理解java输入输出流相关类的基本用法&#xff0c;并且可以掌握Java程序的编写和调试。 实验环境 Java语言&#xff0c;PC或android平台 实验具体内容 设计和编写以下程序&#xff1a; 程序1&#xff1a; 从键盘读入多行字符串&#xff08;英文&#xf…

生产运作管理--第六版陈荣秋

第一章&#xff1a; 生产运作的分类有哪些&#xff1f; 答&#xff1a;可以分为两大类&#xff1a; 产品生产: 产品生产是通过物理或者化学作用将有形输入转化为有形输出的过程。 按照工艺过程的特点&#xff0c;可以分为&#xff1a; 连续性生产&#xff1a;物料均匀、连续的按…

右值引用和移动语义

什么是左值&#xff1f;什么是右值&#xff1f; 通俗来讲&#xff0c;可以出现在赋值语句左侧的&#xff0c;为左值&#xff1b;只能出现在赋值语句右侧的&#xff0c;为右值。 左值与右值的本质区别在于&#xff1a;左值能取地址&#xff0c;但右值不能。 本文主要通过三个场景…

Commons-io工具包与Hutool工具包

Commons-io Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包 作用:提高I0流的开发效率。 FileUtils类(文件/文件夹相关) static void copyFile(File srcFile,File destFile) 复制文件 static void copyDirectory(File srcDir,File destDir) 复…

你的职业规划就是面向贫穷的规划

如果你觉得作者的文章还有点用,请记得点赞 + 关注 说一个扎心的事实,就是我们绝大多数人的职业规划基本上都是错误的,都是面向贫穷的规划。 因为绝大多数人的职业规划都是打工人的职业规划,这种规划除了很少部分人最终能成为企业高管,实现层级跃迁外,绝大多数人在大多数…

递归解析 LXML 树并避免重复进入某个节点

1、问题背景 我们在使用 LXML 库解析 MathML 表达式时&#xff0c;可能会遇到这样一个问题&#xff1a;在递归解析过程中&#xff0c;我们可能会重复进入同一个节点&#xff0c;导致解析结果不正确。例如&#xff0c;我们希望将以下 MathML 表达式解析为 Python 表达式&#x…

DJ-122A电压继电器 柜内安装 电磁式继电器 约瑟JOSEF

系列型号&#xff1a; DJ-100A/Q系列电压继电器 DJ-111A/Q电压继电器; DJ-112A/Q电压继电器; DJ-121A/Q电压继电器; DJ-122A/Q电压继电器; DJ-131A/Q电压继电器; DJ-132A/Q电压继电器; DJ-131A/Q160CN电压继电器; DJ-131A/Q160C电压继电器; ​ 概述 DJ-100A/Q系列电…

linux安装dgl

1.DGL官网、选择与自己cuda、python版本匹配的dgl的whl文件CUDA11.8、python10并下载 2.用pip install运行 pip install /home/u2023170749/download/dgl-2.2.0cu118-cp310-cp310-manylinux1_x86_64.whl

RocketMQ在Centos7系统上单机部署

最近因为一些信创问题&#xff0c;要将RabbitMQ替换为RocketMQ&#xff0c;因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。 优缺点 RocketMQ的优点&#xff1a; 性能优越&#xff1a;RocketMQ在处理大量消息时&#xff0c;性能优于RabbitMQ。当面临每秒数万到数…

【云岚到家】-day04-2-索引同步-搜索接口

【云岚到家】-day04-2-索引同步-搜索接口 1 索引同步1.1 编写同步程序1.1.1 创建索引结构1.1.2 编写同步程序1.1.2.1 添加依赖1.1.2.2 配置连接ES1.1.2.3 编写同步程序 1.1.3 测试1.1.4 小结1.1.4.1 如何保证CanalMQ同步消息的顺序性&#xff1f;1.1.4.2 如何保证只有一个消费者…

抖店一件代发设置自动发货

工具&#xff1a;逸淘 山东逸淘软件-www.1tsoft.com-一键下单&#xff01; step1 下载插件 下载对应浏览器的插件 step2 插件安装 谷歌浏览器--右上角...--设置--扩展程序 把下载的插件从文件夹拖过来 备注&#xff1a;显示 错误 不影响使用 在浏览器网址右边--把插件固定…

香港优才自测140分,带36万+申请香港优才身份被拒了

最近又有一个朋友跟我诉说&#xff0c;一家人申请优才&#xff0c;带几十万yi民香港&#xff0c;还被拒了&#xff0c;真的好气&#xff01; 费心费力等一年以上才收到拒批通知了&#xff0c;被拒的朋友有因为资料准备不足的&#xff0c;有因为错误自测分数给入境处过高期望的&…

【数据结构初阶】--- 栈和队列

栈 栈的定义 栈&#xff1a;只允许在一端进行插入或删除的操作 事实上&#xff0c;线性表和链表都可以实现栈&#xff0c;但栈的特点更符合用顺序表实现 顺序表的队尾相当于栈顶&#xff0c;对栈放入数据&#xff0c;相当于顺序表的下标arr[index] x&#xff0c;而栈弹出数…

老爷机带不动影视后期?云桌面了解一下

从黑白到彩色&#xff0c;从默片到有声&#xff0c;从2D到3D&#xff0c;影视工业经过百余年的演变&#xff0c;每一步技术的提升都试图让影视艺术更接近“真实”。电影特效技术的诞生&#xff0c;更是为影视作品的真实感实现了一次巨大的飞跃。 但有一部分影视人&#xff0c;…

毕业年薪30W起!25届最近5年浙江大学自动化考研院校分析

浙江大学 目录 一、学校学院专业简介 二、考试科目指定教材 三、近5年考研分数情况 四、近5年招生录取情况 五、最新一年分数段图表 六、历年真题PDF 七、初试大纲复试大纲 八、学费&奖学金&就业方向 一、学校学院专业简介 二、考试科目指定教材 1、考试科目…