Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。0今回はC#でFor文、ForEach文、While文、Do-While文を使った繰り返し処理をやってみたいと思います。サンプルはUnity付属のMonoDevelopを使って確認していきます。繰り返し文は条件が成立している間は処理を繰り返す事が出来るので、配列やリストの要素を操作する時に便利ですね。For文、ForEach文、While文、Do-While文はほとんど同じ処理ですが、個人的な利用の仕方としては、For文は回数を限定した繰り返しをしたい時。ForEach文は配列やコレクションクラスの要素数だけ繰り返したい時。Whileは無限ループ中で何らかの処理をさせ、条件をfalseするかbreakをして抜けたい時。Do-Whileはループを必ず1回は実行したい時。していますが、For、While、Do-While間では相互に書き換えが可能なので、大きな違いはありません。それでは一つ一つ見ていきましょう。スポンサーリンクFor文For文は繰り返し変数である初期化子、繰り返しの条件、繰り返し変数の書き換えである反復子を設定します。繰り返す処理}↑のような感じになります。sum);}}↑のように記述します。繰り返し変数は通常iを設定し、For文のネストをする時はi,j,k...と変数名を変更していきます。ただの慣習なのでaなどの別の変数名を使う事も出来ます。今回の場合はiで宣言し0で初期化しています。;の後に繰り返し条件を設定します。繰り返し条件はiが10より下の間という条件になります。;の後に繰り返し変数の書き換えを行います。今回はi++で1回処理が終わったらiの値に1を足しています。iは0で初期化しているので、1から10までの数値を足すにはsumにi+1をした数値を足す必要があります。1を実行をi<10の条件が成立する間繰り返します。i++でiが10になった時、条件であるi<10が成立しなくなる為、For文を抜けてDebug.Logで足した数を出力します。初期化子は最初の1回しか実行されないということになりますね。初期化子と反復子は,を使って複数指定する事が出来、条件には&&や||で複数の条件を組み合わせる事が出来ます。j);}↑の例ではiとjを0で初期化し、条件ではiかjが10より下の時に繰り返すようにします。反復子ではjは2づつ増えるようにしています。これを実行すると↑のようになります。jは途中で10を超えますが、iが10を超えるまでは実行されています。記述しなければ無限ループとなります。設定されていない為、無限に処理を実行します。For文内でsumの値を足していき、10を超えたらbreakでFor文を抜けるようにしています。breakについては後でやります。For文やWhile文で条件が成立しないようにすると無限に処理を実行してしまう為、フリーズしてしまいます。その為、For文やWhile文の処理の中でループを抜ける処理を記述しておく必要があります。ForEach文ForEach文は配列やリスト等のコレクションを操作する時に便利な繰り返し処理が出来ます。繰り返し処理}↑のように配列やコレクションの変数を指定すればその要素数分繰り返し処理が行われ、その要素は一時変数に代入されます。varは暗黙の型指定で、配列やコレクションは型が決まっている為、通常は型指定せずvarを使います。配列がint型の配列であればvarの部分をintとして実行する事も可能ですが、それぞれの型に合わせて変更するのは面倒だと思うのでvarでいいと思います。それでは、配列やリストを作成し、それらをForEachで使用してみましょう。floatSum);}}int型の配列intValues、string型の配列stringValues、float型を入れるリストのfloatListを宣言し、intValues、floatValuesは要素の合計、stringValuesは要素を表示しています。↑のようになりました。While文、Do‐While文while、Do-Whileは条件が成立する間繰り返す処理で、違いはWhileは1回も実行しない可能性があり、Do-Whileは1回は必ず実行するという違いがあります。実行する処理}↑のようになります。(条件式);↑のようになり処理を必ず1回実行してから条件を判定します。それでは実際に使ってみましょう。("do-whileの実行終了");}}Whileではsumが20より下の間は繰り返しsumに1を足して、条件に合わなくなったらループを抜け出しています。Do-Whileでも同様の処理をしています。繰り返し文で使用するキーワード繰り返し文の中で使用するキーワードについてみていきましょう。breakキーワード繰り返し文では何らかの条件でループを抜け出しますが、条件式で指定した以外で抜け出したい事もあります。そんな時に使用するのがbreakキーワードです。breakキーワードを指定するとその場でループを抜け出す事が出来ます。("breakの実験終了");↑の例ではWhileの条件式にtrueを指定し無限ループにします。sumの値に1を足していって、20を超えたらbreakキーワードを使ってwhileを抜け出しています。continueキーワードcontinueキーワードは繰り返し文の中で登場すると、その後の処理をせずループの最初に実行を移します。ある一定の条件の時だけ実行したい処理があった場合はcontinueを使ってその後の処理を飛ばす事が出来ます。("continueの実験終了");↑の例では奇数値だけをコンソールに表示するようにしています。個人的にはbreakはよく使いますが、continueはあまり使っていません。終わりに繰り返し文はループの条件を誤ると無限ループに陥ってしまう事がありますが、それさえ気を付ければ非常に便利なものですね。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。Д`)シクシク...お知らせ2020/01/18個人的にUnity2019.2.18f1をインストールしました。2020/01/01あけましておめでとうございます。(^^)/ユニティちゃんのRPGを作ってみようのPartyStatusスクリプトでpartyMembersのListの型がCharacterStatusとなっていたのでAllyStatusに変更しました。変更したというか、元々AllyStatusに書き換える前のスクリプトを掲載していたので修正しました。ユニティちゃんのRPGを作ってみよう10ーコマンド画面の作成とステータスの表示ーユニティちゃんのRPGでコマンド画面の作成とステータスコマンドを作成し、選択したキャラクターのステータスを表示するようにしていきます。20:00GetPartyStatusメソッドの戻り値もそれに伴って変更しています。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。