Unityに関連する記事です

 コルーチン機能の学習教材です。

WaitUntil のユースケース


 こちらでは yield return new WaitUntil のユースケースとサンプルコードを学習します。


1.ボタンの押下待ち


 プレイヤーが特定のボタンを押すまで待機し、そのボタンが押されたら処理を続行する場合に使用します。




2.オブジェクトのオン待ち


 特定のゲームオブジェクトがアクティブ(あるいは非アクティブ)になるのを待機し、オブジェクトがアクティブ(あるいは非アクティブ)になったら処理を実行する場合に使用します。


 このサンプルでは、WaitForChangeTargetStateコルーチンが定義されています。
指定されたtargetObjectがアクティブになるのを待ちます。
targetObject.activeSelf ==false を条件とすることで、非アクティブになるのを待つこともできます。


3.フラグの確認


 特定の条件やフラグが満たされるまで待機し、その条件が満たされたら処理を継続する場合に使用します。


 このサンプルでは、WaitForFlagコルーチンと WaitForCountコルーチンが定義されています。
WaitForFlagコルーチンでは、指定された flagがtrueになるのを待機します。
WaitForCountコルーチンでは、指定された変数が条件を満たすまで待機します。


学習問題


 WaitUntilを使用して、特定の条件が満たされるのを待機するシステムを作成してください。
ボタンの押下、特定のコンポーネントやオブジェクトの状態変化など、任意の条件を指定し、正常に動作することを検証してください。

 ← クリックすると解答例を表示します。



練習問題

1.通常のメソッドでの実装チャレンジ


 こちらでは、通常のメソッドでの実装と、コルーチンメソッドを使った実装の両方のパターンを学習します。
まずはコルーチンメソッドは利用せず、通常のメソッドのみで、下記の問題を考えて、処理を実装してください。



1.マウスクリックを待機し、その後、シーン遷移させる問題とサンプル解答を用意してください。
  想定としてはタイトルからメインへの遷移です。

 ← クリックすると解答例を表示します。




2.敵の破壊数を計測し、目標数の変数値になったらゲームクリアとするサンプル解答を用意してください。

 2つ提示します。1つは Update メソッドで常に値を監視する方法。
もう1つは敵を倒したタイミングでメソッドを実行して効率よく管理する方法の2つです。

 処理負荷的には、2つ目の方法がよいでしょう。
なぜなら、ボタンのようにいつ押されるかわからない場合と異なり、敵を倒す、という処理のタイミングが決まっていますので
常時監視する必要はなく、適切なタイミングで処理をその都度行うようにすればよいからです。


 ← クリックすると解答例を表示します。




3.【2】の処理を改良し、【1】の機能と組み合わせて、クリア表示後に画面をクリックしたらタイトルシーンに遷移するサンプル解答を用意してください。

 【2】の処理を Update ではなく、外部クラスから実行する形に変更しても構いません。


 ← クリックすると解答例を表示します。



2.コルーチンメソッドでの実装チャレンジ


 先ほど通常のメソッドで作成した【1】〜【3】の処理を、すべてコルーチンメソッドを使って作り直してみてください。



1.マウスクリックを待機し、その後、シーン遷移させる問題とサンプル解答を用意してください。
  想定としてはタイトルからメインへの遷移です。

 ← クリックすると解答例を表示します。




2.敵の破壊数を計測し、目標数の変数値になったらゲームクリアとするサンプル解答を用意してください。


 ← クリックすると解答例を表示します。




3.【2】の処理を改良し、【1】の機能と組み合わせて、クリア表示後に画面をクリックしたらタイトルシーンに遷移するサンプル解答を用意してください。


 ← クリックすると解答例を表示します。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます