UnityAPI学习之协程原理与作用

协程的原理与作用

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();
    }
    
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt MaintenanceTool.exe使用镜像源更新Qt

环境&#xff1a;Windows11&#xff0c;Qt6.5&#xff0c;新版的MaintenanceTool.exe linux环境类似&#xff0c;mac环境可以看官方文档。 cmd命令窗口&#xff1a;切换到MaintenanceTool.exe所在目录&#xff0c;可以用“D:”切换到D盘&#xff0c;“cd xxxx”切换到xxxx目录…

护眼台灯哪个品牌更好?五款市面主流的护眼台灯款式分享

近年来&#xff0c;护眼台灯的研发和创新不断推进&#xff0c;一些台灯配备了智能化功能&#xff0c;如定时开关机、自动调节光线等&#xff0c;使孩子们能够更好地控制用眼时间和光线环境。护眼台灯哪个品牌更好&#xff1f;一些高端的护眼台灯还采用了纳米光滤镜技术&#xf…

深度学习实战P10车牌识别

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 引言 学习目标 一、前期准备 1.设置GPU …

强化RAG:微调Embedding还是LLM?

为什么我们需要微调&#xff1f; 微调有利于提高模型的效率和有效性。它可以减少训练时间和成本&#xff0c;因为它不需要从头开始。此外&#xff0c;微调可以通过利用预训练模型的功能和知识来提高性能和准确性。它还提供对原本无法访问的任务和领域的访问&#xff0c;因为它…

​​Vitis HLS 学习笔记--添加 RTL 黑盒函数

目录 1. 简介 2. 用法详解 2.1 需要的文件 2.1.1 RTL 函数签名 2.1.2 黑盒 JSON 描述文件 2.1.3 RTL IP 文件 2.2 操作步骤 3. 总结 1. 简介 Vitis HLS 工具可以将现有的 Verilog RTL IP&#xff08;即硬件描述语言编写的模块&#xff09;集成到 C/C HLS 项目中。通过…

短剧分销小程序:影视产业链中的新兴力量

一、引言 在数字化浪潮的推动下&#xff0c;影视产业正迎来一场深刻的变革。短剧分销小程序作为这场变革中的新兴力量&#xff0c;正以其独特的魅力和价值&#xff0c;逐渐在影视产业链中崭露头角。本文将探讨短剧分销小程序在影视产业链中的新兴地位、其带来的变革以及未来的…

Transformer系列:图文详解Decoder解码器原理

从本节开始本系列将对Transformer的Decoder解码器进行深入分析。 内容摘要 Encoder-Decoder框架简介shifted right移位训练解码器的并行训练和串行预测解码器自注意力层和掩码解码器交互注意力层和掩码解码器输出和损失函数 Encoder-Decoder框架简介 在原论文中Transformer用…

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】 题目描述&#xff1a;解题思路一&#xff1a;滑动窗口与排序解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。 在一步操…

【嵌入式】一种优雅的 bootloader 跳转APP 的方式

【嵌入式】一种优雅的 bootloader 跳转APP 的方式 0. 个人简介 && 授权须知1. 前言2. 干净的跳转3.程序的 noinit 段4. 利用noinit段实现优雅的跳转4.1 检查栈顶地址是否合法4.2 栈顶地址 44.3 __set_MSP 5.OTA 过后的运行逻辑 0. 个人简介 && 授权须知 &#…

MongoDB 多层级查询

多层级查询 注意&#xff1a;要注意代码顺序 查询层级数据代码放前面&#xff0c;查询条件放后面 if (StringUtils.isBlank(params.getDocType())) {params.setDocType(DOC_TDCTYPE);}String docName mapper.findByDocInfo(params.getDocType());List<ExpertApprovalOpin…

怎么把Rmvb改成mp4格式?把rmvb改成MP4格式的四种方法

怎么把Rmvb改成mp4格式&#xff1f;在当今的数字时代&#xff0c;视频文件格式的多样性给我们带来了巨大的便利&#xff0c;但也可能带来一些兼容性的问题。rmvb是一种曾经非常流行的视频文件格式&#xff0c;主要由于其较高的压缩效率和相对不错的画质。然而&#xff0c;随着技…

计算机组成原理学习 Part 1

计算机系统 组成 计算机系统 { 硬件 计算机的实体&#xff0c;如主机、外设等 软件 由具有各类特殊功能的信息&#xff08;程序&#xff09;组成 计算机系统 \begin{cases} 硬件 &\text 计算机的实体&#xff0c;如主机、外设等\\ 软件 &\text 由具有各类特殊功能的信…

把Vue项目从Window系统迁移到Mac系统的方案

不能启动vue ui 直接运行&#xff0c;会报错如下&#xff1a; failed to load config from /Users/xiaochen/IdeaProjects/ChatViewer-frontend/vite.config.tserror when starting dev server: Error: You installed esbuild for another platform than the one youre curre…

宝藏速成秘籍(6)归并排序法

一、前言 1.1、概念 归并排序&#xff08;Merge Sort&#xff09;是一种基于分治思想的排序算法。它将数组分成两个子数组&#xff0c;分别对这两个子数组进行排序&#xff0c;然后再将它们合并成一个有序的数组。归并排序是一种经典的分治算法&#xff0c;它的核心思想是将待…

探索交互设计:五大关键维度全面剖析

交互式设计是用户体验&#xff08;UX&#xff09;设计的重要组成部分。在本文中&#xff0c;我将向大家解释什么是交互设计并简要描述交互设计师通常每天都做什么。 一、什么是交互设计 交互式设计用简单的术语来理解就是用户和产品之间的交互。在大多数情况下&#xff0c;当…

详解MySQL中的PERCENT_RANK函数

目录 1. 引入1. 基本使用2&#xff1a;分组使用3&#xff1a;处理重复值4. 使用优势4.1 手动计算百分等级4.2 使用 PERCENT_RANK 的优势4.3 使用 PERCENT_RANK 5. 总结 在 MySQL 中&#xff0c;PERCENT_RANK 函数用于计算一个值在其分组中的百分等级。 它的返回值范围是从 0 …

【LLM】吴恩达『微调大模型』课程完全笔记

Finetuning Large Language Models 版权说明&#xff1a; 『Finetuning Large Language Models』是DeepLearning.AI出品的免费课程&#xff0c;版权属于DeepLearning.AI(https://www.deeplearning.ai/)。 本文是对该课程内容的翻译整理&#xff0c;只作为教育用途&#xff0c;不…

会声会影封面图怎么设置 会声会影渲染封面如何固定 会声会影视频剪辑软件制作教程

使用会声会影剪辑完成过后&#xff0c;通常我们需要给我们的视频设置封面&#xff0c;渲染封面又需要进行固定。本文将围绕会声会影封面图怎么设置和会声会影渲染封面如何固定来进行介绍。 一、会声会影封面图怎么设置 会声会影不能随意自定义设置封面&#xff0c;默认情况下…

中国姓名学十大权威专家颜廷利:全国排名第一的起名大师

颜廷利教授,是济南市历城区唐王镇的名人,位居2023年中国当代十大国学大师排行榜之首。全国排名第一的起名大师颜廷利教授以其深厚的学术造诣和卓越的贡献赢得了名誉和尊重,成为当代国学界的翘楚。他从事国学研究已有数十年,对经史子集的研究融会贯通,展现出了非凡的学术造诣。中…

Navicate操作某一张表后,卡主,无法加载,也无法编辑,更无法读取

说明 Navicate操作某一张表后&#xff0c;卡主&#xff0c;无法加载&#xff0c;也无法编辑&#xff0c;更无法读取&#xff0c;遇到这种情况&#xff0c;一般是因为表被锁住了 解决方案 右击数据库&#xff0c;打开命令号界面 查看进程列表 SHOW PROCESSLIST;mysql> …