[Unity3d][C#]数秒止めるTimerまたはコルーチン、object.Destroyについてわかった?こと

現在製作中のブロック崩しの制作が佳境?に入ってきた。
UnityとかC#のプログラム(オブジェクト指向以外の部分)がなんとなくわかってきた気がするが、やはりちょっと詰まると何時間も悩み込んでしまうのはなぜ?

ステージクリアと共に2秒間止めようと考えて調べたところタイマーまたはコルーチンというやり方がある事がわかった。

●timerの場合 statusがtrueになったら2秒間実行する、すまない待つ処理じゃなかった!

●コルーチン WaitForSecondsでやる場合 update内でStartCoroutineは駄目。
呼んじゃうともともとコルーチン自体が何度も呼ぶ処理のため?

テストしてて上記のどっちをやっても動かないとずっと悩んでいたところ、原因はとても単純でDestroyするオブジェクトから上記コルーチンを呼び出していて、Destroyされてそこで止まってしまっていたようだ。
なのでフラグでclear処理をする事に

その際にわかったのは
Destroy(gameObject, 2);
2秒後にオブジェクトを破棄の2はfloat値だが0.5秒後といった少数秒は使えなず、0.5秒なら1秒となってしまう?みたい。

で上記色々書いてみたけど、コード内でGMというstaticへの参照とか使ってて自分へのmemo書きにしかなってなく、コードが実際に動くかも検証して無く、他の人が読んでも意味わからないんじゃないかと漠然と思いながら・・・
とりあえず現場からは以上です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です