为什么要是用携程?

我需要计算1—10000的累加,我们应该怎么做?

1、首先我们写一个累加方法:

public void GetAccumulationResult()

{

int accumulationResult=0;

for(int i=1;i<=10000;i++)

{

accumulationResult+=i;

}

print("1-1000的累加结果为:"+accumulationResult);

}

2、这个方法应该在哪里调用呢?

不论你是在Update(),Start()......任何一个方法里调用,都会造成系统的停顿。我们知道C#中有多线程、异步可以实现,那么在unity中如果实现让游戏正常运行不卡顿,又能正确获得想要的结果呢?

答案就是:Coroutine(协同程序 简称 协程 )

3、协程的使用

首先对累加的方法进行改造

IEnumerator GetAccumulationResult()

{

int accumulationResult=0;

for(int i=1;i<=1000;i++)

{

accumulationResult+=i;

yield return null; //下一帧再执行后续代码

}

print("1-1000的累加结果为:"+accumulationResult);

}

在Update方法中调用

void Update()

{

if (Input.GetKeyDown(KeyCode.Space))//按下空格执行
            {

print("游戏正常运行-1");

StartCoroutine("GetAccumulationResult"); //协程开始

print("游戏正常运行-2");

}

}

游戏运行后按3次空格

控制台德输出结果是这样的:

游戏正常运行-1

游戏正常运行-2

游戏正常运行-1

游戏正常运行-2

游戏正常运行-1

游戏正常运行-2

1-1000的累加结果为:500500

1-1000的累加结果为:500500

1-1000的累加结果为:500500

Unity基础知识之协程相关推荐

  1. Unity 之 关于停止协程的五种方式解析

    Unity 之 关于停止协程的五种方式解析 前言:了解协程 方式一:函数的方式 方式二:函数名的方式 方式三:接收返回值 方式四:StopAllCoroutines 方式五:禁用/销毁游戏对象 本文小 ...

  2. 游戏开发unity基础知识系列:(一)unity 2019 下载与安装

    游戏开发unity基础知识系列:(一)unity 2019 下载与安装 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 零.前言 本人在unity2d方面使用较多,关于unity的使用后面预 ...

  3. Unity基础知识汇总

    2.Unity相关知识 2.1 Unity介绍 Unity成为一款可以轻松创建游戏和三维互动的开发工具,是一个专业跨平台游戏引擎 Unity操作快捷键 Ctrl N New Scene 新建场景 Ct ...

  4. Unity中迭代器和协程的部分概念

    协程本质上也是一个迭代器,为了记录一下今天对二者的学习和巩固记录一下今天的知识点. 首先了解一下迭代器的知识: 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露 ...

  5. 【Unity优化】怎样实现Unity编辑器中的协程

    Unity编辑器中何时须要协程 当我们定制Unity编辑器的时候,往往须要启动额外的协程或者线程进行处理.比方当运行一些界面更新的时候,须要大量计算,假设用户在不断修正一个參数,比方从1变化到2.这种 ...

  6. Unity基础知识学习七,帧同步源码学习

    前言 在学习帧同步框架源码之前,先过一遍基础知识:Unity基础学习六,网络同步_u013617851的博客-CSDN博客 视频地址:帧同步教程[合集]_哔哩哔哩_bilibili github地址: ...

  7. 【Unity笔记】使用协程(Coroutine)异步加载场景

    using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using System;public ...

  8. [Unity] StartCoroutine 无法启动协程的可能原因:没有使用 AddComponent<T>() 初始化 Monobehaviour

    一开始做了一个小功能,测试的时候,正确输入,只打印 2222222222222 不打印 111111111111,不知道是怎么回事 private bool isRunning;public IEnu ...

  9. unity基础知识笔记一(快捷方式、基础概念)

    快捷方式: 飞行模式,可以用alt+wasd ,切换,实现用户以第一视角在场景漫游 alt+鼠标左键:围着关注点旋绕 :切换天空盒.雾效,光晕的显示与隐藏. ctrl+6:可以弹出animation视 ...

  10. PBR+unity 基础知识

    原文地址:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&utm_source=qq 猴子都能看懂的PBR(才怪) 也不知道怎么 ...

最新文章

  1. js post中服务器500错误信息,node.js - Node Express Post 500(内部服务器错误)jquery-3.4.1.min.js - 堆栈内存溢出...
  2. Windows 8各个版本的功能详解与对比【中文详表】
  3. openlayers 可以实现3d地图效果吗_OpenLayers教程:图形绘制之设置图形的样式
  4. 成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
  5. java 全排列非递归算法_全排列的非递归算法 - osc_ivkc73ze的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. 瑞士桁架机器人_机器人库晚报:人工智能可以在实验室中预测人的血糖水平
  7. [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]
  8. 华为机试HJ23:删除字符串中出现次数最少的字符
  9. jQuery中调用方法,动态拼接传字符串参数格式
  10. 计算机网络安全级别设置,电脑IE浏览器安全级别如何设置【图文】
  11. 如何使用puttygen密钥远程登录服务器
  12. 计算机二级access宝典app,二级Access考试宝典
  13. NSQ 源码分析之NSQD--lookup
  14. 戴尔公司大中华区总裁黄陈宏 要烧哪三把火
  15. Python 用10行代码教你画出太阳花
  16. 解决%d format: a number is required, not str问题【一试灵】
  17. 【ArcGIS小技巧视频教程】(1):GIS数据来源下载攻略
  18. 老生常谈:如何快速提升项目管理和团队效率?
  19. VGA带音频转HDMI转换芯片|VGA转HDMI 转换器方案|VGA转HDMI转换器芯片介绍
  20. CDA Level Ⅲ 模拟题(二)

热门文章

  1. 人工智能(ai)和专家系统(expert system)的区别
  2. Cozmo人工智能机器人SDK使用笔记(8)-应用部分apps
  3. ROS智能小车200KG载重麦克纳姆轮底盘制作定制
  4. YUI Compressor 进行js/css文件混淆压缩
  5. vfp 什么是VFP?
  6. 苹果助手一键安装_再见!国内经典的iOS越狱助手,正式宣布下线
  7. 概率扩散模型 Probabilistic Diffusion Model
  8. word给表头和图题按章节编号
  9. 教你如何零基础备考公务员
  10. Axure中推动拉动元件不生效_mac系统axure元件不能拖动的非正常解决方法