Unity之协程

协程,又称微线程,纤程。英文名Coroutine。
子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。

因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。

1、参数说明:

IEnumerator:协同程序的返回值类型;
yield return:协同程序返回 xxxxx;
new WaitForSeconds (秒数):实例化一个对象,等待多少秒后继续执行。 这个 Task3()的作用就是等待两秒后,继续执行任务 3.

2.开启协同程序

StartCoroutine(“协同程序方法名”);
这个 StartCoroutine 有三种重载形式,目前先只介绍这一种。

3.停止协同程序

StopCoroutine(“协同程序方法名”);
这个 StopCoroutine 也有三种重载形式,目前先只介绍这一种。

使用协程,实现一个 ♻️,移动。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoxMove : MonoBehaviour {

private Vector3 v = new Vector3 ();
private float speed = 0.0375f;


void Start () {
    v.z = speed;

    StartCoroutine (Routine());
}

void Update () {
    
}


void FixedUpdate()
{
    transform.position += v;
}

//协程
IEnumerator Routine()
{
    v.z = speed;
    v.x = 0;

    yield return new WaitForSeconds (3f);
    v.z = 0;
    v.x = -speed;

    yield return new WaitForSeconds (3f);
    v.z = -speed;
    v.x = 0;

    yield return new WaitForSeconds (3f);
    v.z = 0;
    v.x = speed;
    yield return new WaitForSeconds (3f);

    StartCoroutine (Routine());
}
}
4.00.11.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容