Unidad C # corrutina Discusión

Corrutina: su nombre indica es al mismo tiempo el programa principal está en marcha, abrir otra sección de la lógica de procesamiento para ayudar en la implementación del programa principal, en la mayoría de los casos que utilizo corrutinas retrasar llamar a una función, un bloque lógico que se ejecutará ha estado circulando juez estas dos condiciones, por favor, siempre pensó antes de la función de terminación cuando hay una co-rutina inconvenientes, ahora comprobar la información, registrada:

1, un co-escritura de imprimir el "Inicio" y espera para la impresión de la lógica texto detrás del proceso de implementación de 5 segundos después de que las llamadas de función de inicio :(.)

	IEnumerator Test()
    {
        Debug.Log("开始");
        yield return new WaitForSeconds(5f);
        Debug.Log("已经开始了 5s 了");
    }

2, llama a la co-rutina
corrutina llamando que puede llenar directamente el nombre del método también se puede utilizar para llamar a una cadena, la cadena debe estar previsto que los nombres de los métodos y Asociación proceso coherente.
(Método) parámetros llenan directamente en el nombre de la función

    private void Start()
    {
        StartCoroutine(Test());
    }

(Método B) como un parámetro llamado ctrip string

	private void Start()
    {
        StartCoroutine("Test");
    }

3, fin a un corrutina:
(un método) Si corrutina abierta, utilizando una co-rutina llamadas de cuerda función, por lo que puede poner fin a la ejecución de una co-rutina.
Nota: Este método sólo puede ser resuelto por la cadena como un parámetro de la co-rutina corrutina abierta! ! !

 	/// <summary>
    /// 终止一个以字符串为参数调起的协程
    /// </summary>
    void Stop()
    {
    	//用字符串代替函数名终止协程
        StopCoroutine("Test");
    }

(Método II) cuando se ajusta a los parámetros de una función llamada desde la co-rutina, hay relleno sobrecargado en parámetros StopCoroutine puede ser un nombre de función.
Nota: Los parámetros de la función nombrada co-rutina termina la co-rutina, he probado varias veces no funcionan, la Internet se ha dicho que este es un inconveniente corrutina.

  	/// <summary>
    /// 终止一个协程
    /// </summary>
    void Stop()
    {
        //以协程的函数名为参数终止该协程,
        //注意:该方式在我这里始终不能实现,且用且珍重
        StopCoroutine(Test());
    }

(Método de tres) Si no desea utilizar una cadena como parámetro para llamar Ctrip, por lo que se siente después de la depuración no es conveniente, entonces puede comenzar la co-rutina registró un pase corrutina parámetros para lograr, como sigue:

	//用来记录协程的
	Coroutine mCoroutine = null;
	
    void Start()
    {
    	//开启协程时记录下来
        mCoroutine= StartCoroutine(Test());
    }
    /// <summary>
    /// 终止一个协程
    /// </summary>
    void Stop()
    {
    	//以Coroutine为参数终止协程
        StopCoroutine(mCoroutine);
    }
Publicado 14 artículos originales · ganado elogios 0 · Vistas 408

Supongo que te gusta

Origin blog.csdn.net/a0_67/article/details/105394070
Recomendado
Clasificación