Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

MonoBehaviour.StartCoroutine

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public function StartCoroutine(routine: IEnumerator): Coroutine;
public Coroutine StartCoroutine(IEnumerator routine);

パラメーター

説明

コルーチンを開始します

コルーチンの実行は 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); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { print("Starting " + Time.time); StartCoroutine(WaitAndPrint(2.0F)); print("Before WaitAndPrint Finishes " + Time.time); } IEnumerator WaitAndPrint(float waitTime) { yield return new 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); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { IEnumerator Start() { print("Starting " + Time.time); yield return StartCoroutine(WaitAndPrint(2.0F)); print("Done " + Time.time); } IEnumerator WaitAndPrint(float waitTime) { yield return new WaitForSeconds(waitTime); print("WaitAndPrint " + Time.time); } }

public function StartCoroutine(methodName: string, value: object = null): Coroutine;
public Coroutine StartCoroutine(string methodName, object value = null);
public function StartCoroutine(methodName: string, value: object = null): Coroutine;
public Coroutine StartCoroutine(string methodName, object value = null);

パラメーター

説明

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

殆どの場合では、上記のようなさまざまなバリエーションの 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; } }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { IEnumerator Start() { StartCoroutine("DoSomething", 2.0F); yield return new WaitForSeconds(1); StopCoroutine("DoSomething"); } IEnumerator DoSomething(float someParameter) { while (true) { print("DoSomething Loop"); yield return null; } } }