にしのクエスト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


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

Unityで学ぶプログラミング  TIPS(25) 画面の分割

こんにちは!今回は二つのカメラを使って、2画面の視点を
表示する方法についてやっていきたいと思います。

カメラを2つ作成して、お互いに反対になるように設置して
みます。ちなみに、こんな画面で

f:id:koharuwest:20201231114032p:plain

こんなHierarchyで

f:id:koharuwest:20201231114149p:plain

こんなカメラ設定(座標)です。

f:id:koharuwest:20201231114433p:plain

f:id:koharuwest:20201231114550p:plain

大事なのは、このカメラのViewport Rectで、W(幅)を半分にします。
メインカメラはこう。

f:id:koharuwest:20201231115027p:plain


サブの方はこちら

f:id:koharuwest:20201231114840p:plain


こうすると、縦の2分割が完成しますね!

f:id:koharuwest:20201231115123p:plain

ちなみに値をH(高さ)の方にふると、

f:id:koharuwest:20201231115253p:plain
横に分割できました!
対戦型のゲームとか、2つ視点が必要なゲームとか、いいかもしれ
ませんね!

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

あけました!2021ですな!

※本日より、隔日更新となります。理由は後で説明。

f:id:koharuwest:20201221224520p:plain


今年もよろしくお願いします。いい一年になると、いいなあ!

このブログでやりたいことは、

・Mac買い替えてレポートしたい
(MacBook Pro16インチのM1出たら買うぞ!)

・Unityをはじめとするプログラミング関連のコンテンツ充実
(新しい本、そろそろ出したいよね!)

・動画、頑張りたい。

などなど、あるのですが。隔日更新が定番となりますので、よ
ろしくお願いします。

理由は、いわゆる「問題解説」のネタが尽きつつあるというこ
とです。試験が延期された影響です。また、春と秋が入れ替わ
ったのも地味に効いています。(残されたのはSC午前2、高
度午前1くらいかな?)

あと、問題解説だったら毎日更新でもいけるのですが、Unity
は結構仕込みが大変だったりするのもあります。

今年は、週に1本くらいのペースで動画の更新したいなあ。

また、ボチボチやりますので!よろしくお願い致します。

よいお年をお迎えください

※本日より、1月3日まで更新をお休みします。再開は4日から
 隔日更新となります。よろしくお願い致します。

f:id:koharuwest:20201221224520p:plain


さて、2020年も残すところあとわずかです。

ということで今年を振り返って見る企画をやろうと思ったのです
が、ちょっとやめちゃいました。

ご存知の通り、疫病の蔓延でこれまでの価値観や概念や倫理が大
きく転換し、社会の変革が急激に進んでしまいました。

例えば、このブログにかかわるようなトピックだけ上げてみても

・テレワーク化・オンライン化
 仕事
 エンタメ

・通信業界の大きな変化
 価格下落
 新規参入
 5Gの加速

・教育の変化
 ギガスクール
 共通テストに情報
 生徒の端末購入
 電子教科書

・試験は何処にいくのだろうか
 春秋の入れ替え
 セキュマネ・基本のCBT化
 (高度午前もCBT?)

こんなにあります。むしろ、進まなかった・進めるべきだった
ICT化の波が一気に押し寄せていて、好機到来!といえる場
面ではありますが、急激すぎてついていけてないよ・・・とい
うのが本音でもあります。

この変化に、恐れることなく乗り込んでいくには勉強しか勝た
ん!というわけで、締めたいと思います。

さて、本年も大変お世話になりました。

それでは、皆様よいお年をお迎えください。
来年が、希望に満ちたよい1年でありますように。

来年もよろしくお願いいたします。

にしの