Profile

Nango

Author:Nango

空がキレイだなぁ

Search

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-

Comment

Comment Form

Comment Form
管理者にだけ表示を許可する
94

Coroutineの簡単なサンプル(Unity v3.5)

幾秒後に実行する、幾秒ごとに実行する、といった処理をさせられる。

コルーチンとは
 "コルーチン"という概念は、Unityだけにあるものではない。
まずはその"コルーチン"について M.Hiroi's Home Page●コルーチンを読んで知る。

Unity の Coroutine
 コルーチンの処理を始めるには StartCoroutine() を使う。

使うには以下のようにする。

引数なし
 StartCoroutine("CoroutineName");

引数あり
 1) StartCoroutine("CoroutineName", param);
 2) StartCoroutine( CoroutineName(paramA, paramB) );

1) では引数を1つしか使えない。
2) の方法で呼び出した Coroutine は StopCoroutine("CoroutineName"); を使っても停止させられない。
という違いがある。



以下サンプル。コメントに実行結果

SimpleCoroutine.cs
using UnityEngine;
using System.Collections;

public class SimpleCoroutine : MonoBehaviour {

void Start () {

print ("Before");
StartCoroutine("Simple");
//StartCoroutine(CustomDelay(3.0f));//has param
//StartCoroutine("CustomDelay",3.0f);//other one
StopCoroutine("CustomDelay");
print ("After");

}

//basic
IEnumerator Simple(){
print (0);
yield return null;
print (1);
/* Before
* 0
* After
* 1
*/
}

//use yield break
IEnumerator Break(){
print (0);
yield break;
print (1);
/* Before
* 0
* After
*/
}

//after 3 seconds
IEnumerator Delay(){
print (0);
yield return new WaitForSeconds(3.0f);
print (1);
/* Before
* 0
* After
* (3 sec)
* 1
*/
}
//after [sec] seconds
IEnumerator CustomDelay(float sec){
print (0);
yield return new WaitForSeconds(sec);
print (1);
}

//every seconds
IEnumerator Loop(){
for(;;){
print (0);
yield return new WaitForSeconds(1.0f);
print (1);
}
/* Before
* 0
* After
* (1 sec)
* 1
* 0
* (1 sec)
* 1
* 0
* ...
*/
}
}
  • Date : 2012-05-13 (Sun)
  • Category : Unity
0

Comment

Comment Form

Comment Form
管理者にだけ表示を許可する
Return to Pagetop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。