C#協程試験編
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()コマンドは、サブクラスで開いているコヒーレントにのみ使用できます.