UNITY3D 实现暂停(Coroutine)
来源:互联网 发布:光子祛斑 知乎 编辑:程序博客网 时间:2024/05/21 10:39
前断时间在做一个游戏项目,为了实现暂停还有游戏逻辑中用yield,自己写了一个类。代码如下:
using UnityEngine;using System.Collections;// if want gameobject pause Updata function, Please extend this classpublic abstract class MyMonoBehaviour : MonoBehaviour {//public abstract IEnumerator MyUpdate();//public abstract IEnumerator MyStart();protected bool pause = false;private bool first;public abstract void SystemUpdate();public void Pause(){pause = true;}public void Resume(){pause = false;}bool isStart;void Start () {first = true;isStart = true; }bool isRuning;void OnDisable(){isRuning = false;} // Update is called once per framevoid Update () {if(first){first = false;return;}if(isStart){if(pause == false){StartCoroutine("MyStart");//print("myStart");isStart = false;}}if(pause == false){//StartCoroutine("SystemUpdate");SystemUpdate();}if(isRuning == false){StartCoroutine(_MyUpdate());isRuning = true;} }IEnumerator _MyUpdate(){//print("pause"+pause);while(true){if(pause == false){yield return StartCoroutine("MyUpdate");}else{yield return null;}} } }使用方法:需要用到暂停的组件,原来继承于MonoBehaviour 改为继承这个类。
原来的Update 改成MyUpdate。如果还需要用原来的的Update就该成 SystemUpdate。
研究的不够彻底,有兴趣的朋友可以一起讨论
- UNITY3D 实现暂停(Coroutine)
- Unity3D Coroutine(协程)
- Unity3D--协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D--协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- Unity3D协同程序(Coroutine)
- unity3d的协同程序(Coroutine)思考
- 关于Unity3D的协程(Coroutine)
- 关于Unity3D的协程(Coroutine)
- 关于Unity3D的协程(Coroutine)
- 关于Unity3D的协程(Coroutine)
- 详解Unity3D中的协程(Coroutine)
- unity3d的协同程序(Coroutine)思考
- 跟我一起写 Makefile(五)
- 二叉树3(统计二叉树中叶子节点的个数)
- Creating a shared and static library with the gnu compiler [gcc]
- 获取assets、src、drawable、value中的资源
- UNITY3D 实现暂停(Coroutine)
- 跟我一起写 Makefile(六)
- 再学学表的分区
- 转】HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】
- word自定义标尺跨度、表格图片充满表格
- 为什么人家的日新工作室,天外天工作室,易班都很火呢?
- 跟我一起写 Makefile(七)
- UNIX和LINUX系统下载中心
- sql assistant license key version 4.0.34