今回作ったゲーム

水色の枠内に白いブロックを積んでいくというゲーム。
単純で特に面白みもないがUnity始めたての私には良い練習になったし、C#の文法への理解も高まった気がする。
今回はブロックを生成するSquareGeneratorスクリプト
ブロックを動かすSquareControllスクリプトの二つを作成する。
まずはSquareControllスクリプトから↓

TimeTotal
一秒を測るための変数
SquareData[]
ブロックの位置を記録するための配列。ブロック間で共有する情報なので必ずStaticをつけて静的にする。Staticがないと配列が共有されずブロックが積みあがらないので注意。'1'は壁を表している。
※count,squaretotalは消し忘れただけなので無いものと思ってください。いらない変数です。

Time.deltaTime
前回Updateメゾットが実行されてからの時間を調べる
TimeTotalにTime.deltaTimeを足していくことで一秒を測ることができる。
if(SquareData[(int)transform.position.x,(int)transform.position.y] == 1){}
ブロックの移動先にすでにブロックか壁があるときに実行される。
39行目
壁に重ならないようにブロックを1上に移動させる。
40行目
ブロックの現在位置を記録する。
41行目
SquareGenerateスクリプトのSquareGenメゾットを実行する。
SquareGenメゾットはクローンブロックの生成を行う。
42行目
ブロックを動かなくする。
クローンブロックを生成する前にブロックを動かなくしてしまうと動かないクローンブロックが生成されてしまうので必ず最後に記述する。

キー入力に応じてブロックを移動させる。中身は37-44行目とほぼ同じ。
次はSquareGeneratorスクリプト↓

public GameObject SquarePrefab;
ブロックのプレハブを入れるための変数
SquareGen()
クローンブロックの生成を行う。

作った二つのスクリプトはどちらもSquarePrefab(ブロックのプレハブ)にアタッチする。
GetComponent<T>()について
GetComponentはTを探すことができるが。そのブロックのコンポーネントにあるものしか探すことができない。
例えば、スクリプトA(ブロックAにアタッチされている)はブロックBのスクリプトBから探すことができない。なので写真のように使うスクリプトはすべてアタッチしておく。
