Unity3D教程:c#脚本yield的用法

Coroutines & Yield是Unity3D编程中重要的概念,它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行,但是在Javascript与C#中实现Coroutines & Yield,在语法上却有一些区别:

javascript中yield用法很简单,直接yield就行了,或者yield WaitForSeconds (2);

c#中的用法如下:

yield不可单独使用

需要与return配合使用,例如:

1 yield return 0; //等0帧

2 yield return 1; //等1帧

3 yield return WaitForSeconds(3.0); //等待3秒

所有使用yield的函数必须将返回值类型设置为IEnumerator类型,例如:

1 IEnumerator DoSomeThingInDelay() {...}

最后,也是在”Using C#”这个章节中没有讲到的关键一点是,所有IEnumerator类型函数必须使用”StartCoroutine”这个函数触发,不能单独使用,例如:

1 StartCoroutine(DoSomeThingInDelay());

时间: 2024-10-08 14:08:23

Unity3D教程:c#脚本yield的用法的相关文章

Unity3D教程宝典之光影烘焙:第四讲脚本控制

上一讲讲了用Light probes实现动态物体的非实时阴影,这一讲讲用代码实现代码实现动态物体的非实时阴影. 实现步骤:(1)新建一个场景,并建一个plane作为大地(2)创建Cube并缩放成扁平面后.复制Cube并旋转拼接搭建成一个敞篷.(3)讲上述物体设置static并烘焙.(4)创建一个player.这里用的unity自带的Character Controller包里的 3rd person controller这个prefab,拖进敞篷边.在该人物下找到Bip001 Pelvis这个节

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲

自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第一讲:基本使用 AssetBundles是从unity导出你选择的assets,它使用特有的压缩格式并且应用可以实时去读取它.包括模型贴图音频等任何asset类型,甚至整个场景.压缩大小基本能达到zip的效果.AssetBundles从设计时就定位为可以很简单就下载到应用里.如果你想包括自定义的bina

Unity3D教程宝典之Web服务器篇:(第三讲)PHP的Hello World

转载自风宇冲Unity3D教程学院 引言:PHP是比较简单的编程语言,即使没接触过的也可以现学现用.PHP教程文档PHP100视频教程                           Unity接收PHP的输出Hello World. 进入www文件夹,右键新建文本文档,起名为helloWorld.php, 用记事本打开,输入如下代码,保存. <?php //echo 类似cout 或者 print,即在网页中输出文本内容 echo "Hello World!"; ?>

Unity3D教程宝典之Web服务器篇:(第二讲)从服务器下载图片

转载自风宇冲Unity3D教程学院                                    从Web服务器下载图片 上一讲风宇冲介绍了wamp服务器及安装.这回介绍如何从服务器下载内容至Unity3d程序中. 往wamp路径下的www文件夹下拖入一张图片,这里使用的是cat.jpg, 输入http://localhost/cat.jpg,可以查看到图片如下后, 新建unity工程,创建一个球体,创建一个任意名称材质,并赋予该材质至球体.创建一个名为GetImage的脚本,代码如下,

Unity3D教程:性能优化

1.使用静态类型化 在JavaScript中,使用静态类型化(Static Typing)来代替动态类型化(Dynamic Typing)对性能的优化非常重要.unity 使用一种叫做类型推导(Type  Inference)的技术,自动把JavaScript转化为静态类型代码(Statically Typed Code),而不需要你做其他任何工作. var foo = 5;像 foo 变量将会被自动推导为整数值.Unity 可以完成许多编译时优化(Compile  TimeOptimizati

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第二讲:AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本.导入后其他所有Unity的文件都不会有问题,唯独脚本是没作用的.那能不能用脚本呢? 答案是,可以! 核心是脚本可以打包进Dll,然后在客户端用System.Reflection下的Assembly来加载. 步

unity3d抛物线的脚本

using UnityEngine; using System.Collections; public class ProjectileTest : MonoBehaviour { public GameObject target; public float speed = 10; private float distanceToTarget; private bool move = true; void Start () { distanceToTarget = Vector3.Distanc

Unity3D教程宝典之光影烘焙:第三讲Light probes

引言:烘焙出来的light map并不能作用于动态物体.如果场景里有动态物体的话,会显得与烘焙好的场景脱离.需要两个部分的效果:影子:(1)使用勾选阴影的实时光.(注意:Dual+deferred Dual+forward Single+forward都有影子   只有Single+deferred,即使光勾选了阴影,也不会有影子.) 明暗变化:(1)使用实时光(2)使用Light Probes(3)使用脚本控制物体处于阴影区域的颜色:(1)(2)都默认是黑色,除非自己在阴影区域再加光源(3)自

Unity3D教程宝典之光影烘焙:第一讲光影烘焙

引言:光影烘焙,英文叫Lightmapping 或 light baking.Unity自带了Lightmapping的功能(是Illuminate Labs出的名为Beast的产品).本系列教程分为4讲:第一讲 光影烘焙第二讲 AreaLight第三讲 Light Probes第四讲 脚本控制其中第三第四讲讲解的是动态物体与烘焙后场景的融合.             光影烘焙 打开方式 Window – Lightmapping有几点需要注意:1.所要烘焙物体的mesh 必须要有合适的ligh