にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング  テトリス的を作る(1)表示用ブロックを並べる

こんにちは!

今回からテトリス的なものを作っていきます。長い連載にな
りますので、気長にお付き合いください。

なお、プログラムの内容は難しいので、初心者には向きませ
ん。いきなり作るのは厳しいのでよろしくお願いします。
また、説明も大幅に省いていきます。

テトリス的がなぜ難しいかというと、行き当たりばったりに
作ることできないからです。ゲームの最後の姿を描いて、そ
れに向かって全体をプログラミングしていく必要があるから
なんですねー。

よってテトリスを「何にもみないで」作ることができれば入
門者卒業といわれています。

最後に注意事項
ご紹介するのはあくまで「テトリス的」です。そのものでは
ありませんし、非常にシンプルに遊べるだけのものです。

連載終了後に、より詳しい技術的な解説&追加機能を加えた
電子書籍を発行する予定ですので、よろしくお願いします。


今回は表示の画面を作ります。
表示の方法はいろいろあるのですが、ブロックを並べてその
色を変えることで表示していきたいと思っています。

早速、インスペクタはこんな感じで。
GameDirectorを追加しました。Emptyです。

f:id:koharuwest:20210103103134p:plain

ブロックは作ってプレハブにします。サイズはそのまま。

f:id:koharuwest:20210103103253p:plain


Rigidだけつけてあげます。抵抗をなくして
XYのみの移動にしちゃいます。
f:id:koharuwest:20210103103223p:plain


ついでに色のマテリアルも作ってください。
・ブロックの色
・何もない場所の色
・壁の色

こんな感じでしょうか。
早速並べるプログラムを書いてみます。

f:id:koharuwest:20210103103730p:plain


こんな感じで、Game Directorにアタッチしておきます。

//ブロックを格納
public GameObject BlkObj;
 
void Start()
{
 
//コントロール変数
int i,j;
//ブロックを並べる(物理的に)
//タテ21並べた後それを横12
for(i=0;i<12;i++){
for(j=0;j<21;j++){
Instantiate(BlkObj,new Vector3(i*1.0f,j*-1.0f,0),Quaternion.identity);
}
}

}


で、ブロックのプレハブを放り込みます。

f:id:koharuwest:20210103104815p:plain


あかん、重力は切ってくださいw

とりあえず、カメラの設定はこうしておきますと。
f:id:koharuwest:20210103105150p:plain

できたー!
なんのことかよくわからんけどー!

f:id:koharuwest:20210103105243p:plain


それではよきプログラミングライフを!
またね。