Unity3d 协程、调用函数、委托
2015-10-18 12:05
585 查看
(一)协程
开启方法:StartCoroutine("函数名");
结束方法StopCoroutine("函数名"),StopAllCoroutines();
(二)调用函数
开启方法
不重复调用
Invoke("函数名",“延迟时间”); 重复调用 InvokeRepeating("函数名",“延迟时间”,“重复间隔时间”);
结束方法
CancelInvoke("函数名"),CancelInvoke();
是否在有在调用的函数
IsInvoking(); 指定函数是否在调用 IsInvoking("函数名");
(二)委托
开启方法:StartCoroutine("函数名");
结束方法StopCoroutine("函数名"),StopAllCoroutines();
IEnumerator TestIEnumerator() { Debug.Log("协程"); //等待游戏界面绘制完成 yield return new WaitForEndOfFrame(); Debug.Log("游戏界面绘制完成"); //等待1秒后 yield return new WaitForSeconds(1F); Debug.Log("1秒后"); //等待0.5秒后 yield return new WaitForSeconds(0.5F); Debug.Log("0.5秒后"); while(true) { //等待固定更新 yield return new WaitForFixedUpdate(); Debug.Log("固定更新"); } } // Use this for initialization void Start () { StartCoroutine("TestIEnumerator"); }
(二)调用函数
开启方法
不重复调用
Invoke("函数名",“延迟时间”); 重复调用 InvokeRepeating("函数名",“延迟时间”,“重复间隔时间”);
结束方法
CancelInvoke("函数名"),CancelInvoke();
是否在有在调用的函数
IsInvoking(); 指定函数是否在调用 IsInvoking("函数名");
void TestInvokeRepeating() { Debug.Log("重复调用"); m_round++; if (m_round > 15) { //结束所有调用 //CancelInvoke(); //结束指定调用 CancelInvoke("TestInvokeRepeating"); } if (IsInvoking("TestInvokeRepeating")) { Debug.Log("调用中"); } else { Debug.Log("不在调用中"); } } void TestInvokeRepeating2() { Debug.Log("重复调用TestInvokeRepeating2"); } // Use this for initialization void Start () { m_round = 0; InvokeRepeating("TestInvokeRepeating",0f,1f); InvokeRepeating("TestInvokeRepeating2", 0f, 1f); }
(二)委托
public class GameManager : MonoBehaviour { //定义一个委托 delegate int TestEntrust(int a); public int ReceiveLogic(int a) { Debug.Log("参数a="+a); return 0; } // Use this for initialization void Start () { //创建委托对象 TestEntrust rl = new TestEntrust(ReceiveLogic); //调用 rl(3); } }
相关文章推荐
- 【笨木头Unity】入门之旅001:学游泳的第一步是下水
- 【笨木头Unity】入门之旅000:前言
- Unity3d Shader
- Effective Unity3D
- Unity碰撞(Collider)的深入理解
- Unity3d 动态批处理的问题
- UNITY 5.2 Transform类
- unity, 由于project settings中time scale变成0导致动画不播放
- unity版本控制工具的使用
- unity gl 画线
- Canvas Scaler
- Unity 添加脚本后的执行顺序
- 开始unity学习
- Unity3d特效DrawCall优化介绍
- Unity3D研究院之游戏对象的访问绘制线与绘制面详解(十七)
- unity3d中的快捷键
- Unity 5.1+ Assertion Library (断言库)
- Unity发布安卓无法读取StreamingAssets文件下数据库的问题
- 【Unity】UGUI如何判断鼠标或者手指是否点击到UI上
- Unity性能优化——LOD技术