Unity勉強15日目:ループ分で、繰り返し処理をしてみよう
昨日は条件分岐の複数書き出す形を実施。
■振り返り
・ifでbool型を呼び出し、&&や||で絶対条件や、片方条件を設定できる
・たくさんのelse ifなどを作成するより、switch文を使う方が整理ができる
・たくさんあるときはswitch、TrueかFalseのときはifがよい
使用する場面を想定:
・&&は例えば両方のタイプの絵が好きな人はaなど。
・||はどちらかの条件でも好きであればこの絵提案、など。
・1月生まれはa、2月生まれはbなどはswitch。
■繰り返し処理をしてみよう
歩く動きだったり、あるボタンを押したらそのまま突き進むなど?
などの繰り返し実施したいとき、連続で書くのは面倒。
{
int a = 0;
while (a < 5)//これはbool型
{
Debug.Log("aは" + a + "です");//ループの中身
++a;
}
}
while aが5より小さい場合、ループの中身(aはaです と表示する)を実行する
その後、aに1を足して、whileに戻り、a(1)<5でTrue、
それが5回繰り返される。
例えば、ボスのHPを削るときや、もしかしたら、
物体に対して壁にぶつかる動きなどもできるかも?
■無限ループに注意
一生Trueになるようなループ外での代入などがあると、
Unityを強制終了するしかなくなる。
なので、ループ内で++aなどで条件が変わり、
代入b=a<5;などを入れることが大事!
■Updateとループ文の違い
簡単に言うと、
・Updateはマイフレーム呼ばれる(永遠に連続)
・ループは1フレーム内で完結する(5までの間に見えない速さで1,2,3,4を行う)
ループだと一瞬、Updateだとフレームごとに動く。
■ループ文で他に使えるcontinueとbreak
while(true)など無限に続きそうなものでも
++a;とif(a<10)
{continue}をすることで、++a+が続き、
その下にbreakを入れることで、
a<10になったら次の処理に移ることができる。
■ループ文で他に使えるdoとwhile
もし強制的に1回でも実施したい場合whileではなく
doを入れることで実施され、その後にwhileの条件が動く。
他にもfor文を書くことで、最初に1度だけ行う処理を書き
その後にループする文を書き、その後に処理が終わるたびに行う処理
for (int i = 0 ; i < 5 ; ++i )
{
Debug.log(i);
}
intで定義、iは0であり1度処理。
その後iが5より小さい場合その下のDebug.Logが行われ、
次の処理としてiに1を足して、iが5になるまで続く。
for文の方がスッキリ1行でかけるし、無限ループの可能性も少ない。
■配列について
同じ型の変数を何回も書く(定義する)場合、配列が便利。
配列:複数の箱をまとめたもの
書き方は2つあり、
1.配列分に,で数字を書いていくか、
2.大きい数はnew int[50]で箱に50小数字が入れられて
その後forのループ文でa.Length(50)になるまで
++iで足される回数処理が行われる
■多次元配列について
3つのものが入った箱が4つあり、それが3つまとまっている場合
int[,,]a=new int[3,4,3]
その場合ループを何回するかわからないため、
GetLength(0)や(1)(2)をやることで、それぞれの個数を自動で計算してくれて、3×4×3で36までこの場合なら最大である。
あとはfor each文を使うことで、intで定義した数をそれぞれピックアップするまでループすることもできる。
■明日やること
今日の結構難しかったな、、、今週はちょっとプログラミング的なところで難しいけど、一旦やってみながら、ゲームを作るまでの1週間踏ん張りドキとして頑張る。
■今後やること
・一流に会う、一流から聞く、コミュニティなどで情報を浴びる
・Clusterに関する情報を集める
・Clusterでワールドを作ってみる
・Unityが出しているオンライン教材をする
・Unityのサンプルを分解
・簡単なゲームを作る
・アセットを使って動かす
・ClusterとUnityの仕事(ランサーズなど)を調べる
・Unity初心者をする
・Unityのチュートリアルをする
・建物空間とシーン(無限城を作ってみたり)
・C#やpythonが足りなければドットインストール
・スクレイピングサービスを作ってみる