C#協程試験編

1400 ワード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class IeTest : MonoBehaviour {
	public Button StartC;
	public Button Stopc;
	public Text Numc;
	int i = 0;
	// Use this for initialization
	void Start () {
		// 
		StartC.onClick.AddListener(delegate() {
//			StartCoroutine(Test());
//			StartCoroutine("Test");
//						StartCoroutine(Test2(i));
						StartCoroutine("Test2",i);
		});
		// 
		Stopc.onClick.AddListener(delegate() {
//			StopCoroutine("Test");
			StopCoroutine("Test2");
//			StopAllCoroutines();
		});

	}
	// 
	IEnumerator Test(){
		
		while (true) {
			yield return new WaitForSeconds (1);
			i++;
			Numc.text = i + "";
		}

	}
	IEnumerator Test2(int i){

		while (true) {
			yield return new WaitForSeconds (1);
			i++;
			Numc.text = i + "";
		}

	}
}

 
StopAllCoroutines()をテストすると、すべての書き込みモードがオンになっている協程を停止することができます.StopCoroutine(「Test」)はStartCoroutine(「Test」)の書くモードの協力を停止することしかできない.StartCoroutine(Test())モードがオンのコンシステントはStopAllCoroutines()でのみ停止でき、StartCoroutine(「Test」)では停止できません.
注意:親が虚を書き換える方法を継承するのは、書き換えるときに開いている協程のみに関係する別の協程です.したがって、StopAllCoroutines()は、現在のスクリプトに書かれている協程のみに役立つのではなく、現在のスクリプトによって開かれている協程に役立ちます.たとえば、子クラスで親クラスの虚を書き換える方法が呼び出され、子クラスで親クラスのプライベートタイプの協程が開かれます.サブクラスのStopAllCoroutines()コマンドは、サブクラスで開いているコヒーレントにのみ使用できます.