言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

MonoBehaviour.StartCoroutine

Switch to Manual
public function StartCoroutine(routine: IEnumerator): Coroutine;

Description

コルーチンを開始します

コルーチンの実行はyield文を使用することによって、任意のタイミングで一時停止することができます。 コルーチンが再開される時のyieldの戻り値を指定します 複数のフレームにわたって動作をモデリングするときにコルーチンは優れています。 コルーチンは実質的にパフォーマンスのオーバーヘットはありません。 StartCoroutine関数は常にすぐに返りますが、yield文を使うことができます。 コルーチンの実行が完了するまで待機します。 JavaScriptを使用しているときはStartCoroutineを使う必要はありません。コンパイラが自動で使用します。 C#のコードではStartCoroutineを使用する必要があります。

	// In this example we show how to invoke a coroutine and continue executing
	// the function in parallel.

	function Start() {
		// - After 0 seconds, prints "Starting 0.0"
		// - After 0 seconds, prints "Before WaitAndPrint Finishes 0.0"
		// - After 2 seconds, prints "WaitAndPrint 2.0"
		print ("Starting " + Time.time);
		// Start function WaitAndPrint as a coroutine. And continue execution while it is running
	
		// this is the same as WaitAndPrint(2.0) as the compiler does it for you automatically
		StartCoroutine(WaitAndPrint(2.0)); 
		print ("Before WaitAndPrint Finishes " + Time.time);
	}

	function WaitAndPrint (waitTime : float) {
		// suspend execution for waitTime seconds
		yield WaitForSeconds (waitTime);
		print ("WaitAndPrint "+ Time.time);
	}

他の例:

	// In this example we show how to invoke a coroutine and wait until it 
	// is completed
	
	function Start() {
		// - After 0 seconds, prints "Starting 0.0"
		// - After 2 seconds, prints "WaitAndPrint 2.0"
		// - After 2 seconds, prints "Done 2.0"
		print ("Starting " + Time.time);
		// Start function WaitAndPrint as a coroutine. And wait until it is completed.
		// the same as yield WaitAndPrint(2.0);
		yield StartCoroutine(WaitAndPrint(2.0));
		print ("Done " + Time.time);
	}

	function WaitAndPrint (waitTime : float) {
		// suspend execution for waitTime seconds
		yield WaitForSeconds (waitTime);
		print ("WaitAndPrint "+ Time.time);
	}
public function StartCoroutine(methodName: string, value: object = null): Coroutine;

Description

コルーチンを開始するメソッド名

殆どの場合では、上記のような様々なバリエーションのStartCoroutineを使用します。 しかし、メソッド名を使用したStartCoroutineを使用すると、特定のメソッド名の StopCoroutine を使用することができます。 欠点は、文字列バージョンはコルーチンの開始するために高いランタイムのオーバーヘッドを持つことと、パラメータを1つしか渡すことができません。

	// In this example we show how to invoke a coroutine using a string name and stop it

	function Start () {
		StartCoroutine("DoSomething", 2.0);
		yield WaitForSeconds(1);
		StopCoroutine("DoSomething");
	}

	function DoSomething (someParameter : float) {
		while (true) {
			print("DoSomething Loop");
			// Yield execution of this coroutine and return to the main loop until next frame
			yield;
		}
	}