Unity基础知识之协程
为什么要是用携程?
我需要计算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基础知识之协程相关推荐
- Unity 之 关于停止协程的五种方式解析
Unity 之 关于停止协程的五种方式解析 前言:了解协程 方式一:函数的方式 方式二:函数名的方式 方式三:接收返回值 方式四:StopAllCoroutines 方式五:禁用/销毁游戏对象 本文小 ...
- 游戏开发unity基础知识系列:(一)unity 2019 下载与安装
游戏开发unity基础知识系列:(一)unity 2019 下载与安装 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 零.前言 本人在unity2d方面使用较多,关于unity的使用后面预 ...
- Unity基础知识汇总
2.Unity相关知识 2.1 Unity介绍 Unity成为一款可以轻松创建游戏和三维互动的开发工具,是一个专业跨平台游戏引擎 Unity操作快捷键 Ctrl N New Scene 新建场景 Ct ...
- Unity中迭代器和协程的部分概念
协程本质上也是一个迭代器,为了记录一下今天对二者的学习和巩固记录一下今天的知识点. 首先了解一下迭代器的知识: 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露 ...
- 【Unity优化】怎样实现Unity编辑器中的协程
Unity编辑器中何时须要协程 当我们定制Unity编辑器的时候,往往须要启动额外的协程或者线程进行处理.比方当运行一些界面更新的时候,须要大量计算,假设用户在不断修正一个參数,比方从1变化到2.这种 ...
- Unity基础知识学习七,帧同步源码学习
前言 在学习帧同步框架源码之前,先过一遍基础知识:Unity基础学习六,网络同步_u013617851的博客-CSDN博客 视频地址:帧同步教程[合集]_哔哩哔哩_bilibili github地址: ...
- 【Unity笔记】使用协程(Coroutine)异步加载场景
using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using System;public ...
- [Unity] StartCoroutine 无法启动协程的可能原因:没有使用 AddComponent<T>() 初始化 Monobehaviour
一开始做了一个小功能,测试的时候,正确输入,只打印 2222222222222 不打印 111111111111,不知道是怎么回事 private bool isRunning;public IEnu ...
- unity基础知识笔记一(快捷方式、基础概念)
快捷方式: 飞行模式,可以用alt+wasd ,切换,实现用户以第一视角在场景漫游 alt+鼠标左键:围着关注点旋绕 :切换天空盒.雾效,光晕的显示与隐藏. ctrl+6:可以弹出animation视 ...
- PBR+unity 基础知识
原文地址:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&utm_source=qq 猴子都能看懂的PBR(才怪) 也不知道怎么 ...
最新文章
- js post中服务器500错误信息,node.js - Node Express Post 500(内部服务器错误)jquery-3.4.1.min.js - 堆栈内存溢出...
- Windows 8各个版本的功能详解与对比【中文详表】
- openlayers 可以实现3d地图效果吗_OpenLayers教程:图形绘制之设置图形的样式
- 成功解决ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the
- java 全排列非递归算法_全排列的非递归算法 - osc_ivkc73ze的个人空间 - OSCHINA - 中文开源技术交流社区...
- 瑞士桁架机器人_机器人库晚报:人工智能可以在实验室中预测人的血糖水平
- [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]
- 华为机试HJ23:删除字符串中出现次数最少的字符
- jQuery中调用方法,动态拼接传字符串参数格式
- 计算机网络安全级别设置,电脑IE浏览器安全级别如何设置【图文】
- 如何使用puttygen密钥远程登录服务器
- 计算机二级access宝典app,二级Access考试宝典
- NSQ 源码分析之NSQD--lookup
- 戴尔公司大中华区总裁黄陈宏 要烧哪三把火
- Python 用10行代码教你画出太阳花
- 解决%d format: a number is required, not str问题【一试灵】
- 【ArcGIS小技巧视频教程】(1):GIS数据来源下载攻略
- 老生常谈:如何快速提升项目管理和团队效率?
- VGA带音频转HDMI转换芯片|VGA转HDMI 转换器方案|VGA转HDMI转换器芯片介绍
- CDA Level Ⅲ 模拟题(二)
热门文章
- 人工智能(ai)和专家系统(expert system)的区别
- Cozmo人工智能机器人SDK使用笔记(8)-应用部分apps
- ROS智能小车200KG载重麦克纳姆轮底盘制作定制
- YUI Compressor 进行js/css文件混淆压缩
- vfp 什么是VFP?
- 苹果助手一键安装_再见!国内经典的iOS越狱助手,正式宣布下线
- 概率扩散模型 Probabilistic Diffusion Model
- word给表头和图题按章节编号
- 教你如何零基础备考公务员
- Axure中推动拉动元件不生效_mac系统axure元件不能拖动的非正常解决方法