IEnumerator 的等待用法

 IEnumerator StartRightLiziCard()//在下面函数的调用开始执行
    {
        yield return new WaitForSeconds(1.0f);//等待1秒针

        areas[Index].energyGun.SetActive(true);//执行

    }
    int Index = 1;
    public void playEnergyGun(int seatIndex, bool isPlay)//开始执行
    {
        if (isPlay)
        {

            if (areas[seatIndex - 1].isEnergyOver)
            {
                areas[seatIndex - 1].isEnergyOver = false;
                Index = seatIndex - 1;
                StartCoroutine("StartRightLiziCard");此处执行到上面函数的接口。。。但是同时向下面代码执行。。
                int spriteName = Convert.ToInt32(areas[seatIndex - 1].gunBarrel.GetComponent<UISprite>().spriteName);
                areas[seatIndex - 1].gunBarrel.GetComponent<UISprite>().spriteName = (spriteName + 4).ToString();
                areas[seatIndex - 1].particle.Play();

            }
        }
        else
        {
            if (!areas[seatIndex - 1].isEnergyOver)
            {
                areas[seatIndex - 1].isEnergyOver = true;
                areas[seatIndex - 1].energyGun.SetActive(false);
                int spriteName = Convert.ToInt32(areas[seatIndex - 1].gunBarrel.GetComponent<UISprite>().spriteName);

                areas[seatIndex - 1].gunBarrel.GetComponent<UISprite>().spriteName = (spriteName - 4).ToString();
                areas[seatIndex - 1].particle.Play();
            }
        }
    }

注意:相当于开启了一个子线程,但是主线程仍向下执行。

时间: 2024-11-07 23:38:09

IEnumerator 的等待用法的相关文章

selenium中几种常用的等待

提起selenium中的等待,最先浮入你脑海的会是什么呢? time sleep? 显式等待? 隐式等待? ---- 1.time sleep() 可以称其为暂停等待,当设置为time.sleep(3)时意味着程序在等待3s后才会执行下一步查找下一位元素,比较适合没有大幅度跳转的页面,尽量少用,不推荐使用. 2.显式等待 用法为: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "Helvetic

Linux Condition Variable条件变量避免锁冲突

条件变量Condition Variable的一般用法: 唤醒用法: 1 struct { 2 pthread_mutex_t mutex; 3 pthread_cond_t cond; 4 //whatever variables maintain the condition 5 ) var = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, ... };//声明结构体并初始化 6 7 pthread_mutex_lock(&var

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t

【Unity】鼠标划定范围然后截图~

有时候要重复用某一个场景的某一个角度,都过去好几步了结果总不能再把已经打乱的场景物体再移动回去吧.so~智慧的我完成了伟大的偷懒.截图保存,什么时候要看,直接上图片以假乱真棒棒哒~ 当然这个功能还能用在很多地方,所以有拓展了一下鼠标自定义范围截图并保存在了文件夹下.然后就华丽丽的出现了下边这些代码. using UnityEngine; using System.Collections; public class jietu : MonoBehaviour { int w, h; Vector3

【Unity3D游戏开发】—— 太空大战打飞机游戏详解

大家好我是Kaven,今天给大家带来的是一个Unity3D的打飞机的小项目.俗话说"眼看千变,不如手过一边",学了差不多两星期Unity3D了,是时候找个小项目练练手了.于是就翻出了cocos2d-x的一个例子,模仿着写了一个飞机大战的游戏,虽然有一些功能没有实现,但总体上是完成了.闲话少说,下面开始吧. 由于这个用的是Unity3d自带的原生的2D插件native 2d,所以创建项目时左下角选择2d. 这个小游戏我分了三个场景,菜单场景,游戏场景,结束场景.由于菜单场景与结束场景都比

资源的下载与上传——02上传

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 上传 从服务器下载资源时,我们通常需要告诉服务器设备信息.用户信息等以便下载对应资源 参数或者文件可以通过UnityEngine.WWWForm类作为WWW的参数上传 设备类型可以通过APPlication.platform得到,例如:RuntimePlatform.IphonePlayer或者RuntimePlatform.Android 设备内存大小尅通过SystemInfo.systemMemorySize得到,例如:服务器通

Unity 协程与调用函数的区别以及示例应用

Coroutine:协同程序(简称:协程),参考网络给出以下两个定义供参考. 1> 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行.换句话说,开启协同程序就是开启一个模拟线程. [作者注: 不是真正的线程] 2> 是一种很古老的编程模型,以前的操作系统里进程调度里用到过,现在操作系统的进程调度都是根据时间片和优先级来进行轮换,以前是要程序自己来释放cpu的控制权,一直不释放一直也就占用着cpu,这种要求程序自己来进行调度的编程模型应该就叫"协程".

Unity截屏

方式一:直接使用unity自带的截图函数 1 Application.CaptureScreenshot(“imagename”); 保存路径: 在PC上保存路径为Application.dataPath(项目所在的路径) 在安卓或者Iphone平台上保存路径为Application.persistentDataPath(游戏里保存数据时放的一个持久数据目录) 优点:简单粗暴 缺点:PC.Mac上正常,但是在移动平台上会出现卡顿现象. 方式二:通过屏幕缓存转化为Png图片进行截图. IEnume

Unity3D游戏开发之基于Trigger的触发式动画设计

相信大家在安装完Unity3D后做的第一件事情一定是浏览官方的示例项目<愤怒的机器人>,这个游戏在场景渲染及光照阴影特效等方面都有不错的表现.那么不知道大家还记不记得这样一个场景,当玩家操控我们的游戏角色--机器人时,当机器人靠近游戏场景中的门时,门会自动打开,而当机器人离开门时,门会自动关闭.那么,我们今天就来一起实现这样一个简单的功能.通过题目大家一定知道了这个功能的实现是基于Trigger的.Trigger在Unity3D中称为触发器,当一个碰撞器勾选了isTrigger选项后,即变成了