#ブロック崩しのチュートリアル
Unityのサイトに昔からあるチュートリアルに、以下があります。
「はじめてのUnity」(旧)
http://tutorial.unity3d.jp/archive/my-first-unity/
これを独自にC#化したものをベースとしています。
この解説は以下の段階があります、前の内容を実行した上でのものとして参照して下さい。現時点(20151026)では、新しい「はじめてのUnity」の玉転がしゲームが公開されています。本サイトのブロック崩しと併せて学習すると広がりがあり、初期の学習にはとても有効です。
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(1)ステージ配置
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(2)色を変える
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(3)動くボール
- [[超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(4)ラケットを動かす]
(http://qiita.com/JunShimura/items/5fac20966bba6b223427) - [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(5)消えるブロック
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(6)ブロックを手作業で並べる
#どういうものを作るか
想定しているのは、以下の仕様とします。
- 縦長の長方形ステージを配置
- ボールが勝手に縦横で直線的に動いて、長方形ステージで跳ね返る
- プレイヤーが動かせる箱が下に在り、ボールが跳ね返る
- ブロックが配置されている
- ブロックとボールが衝突すると消える
必要最低限だとこうなりますが、更に、
- ブロックとボールがぶつかると点数が入る
- 下のステージの壁にぶつかるとゲームオーバー
とすれば、無限に点数が入らないので、「点数を入れるゲーム」として成り立ちます。更に面白さを加えるならば、攻略性を考える部分を仕込んでいく形になります。
それでは実際に作っていきましょう。
#基礎部分の制作
先ずは、基礎をUnityエディタで作ります。
##プロジェクトを作る
今回はblock
という名前で作っています。
適宜、プロジェクトを創りたいフォルダを指定して、Create Project
を押して下さい。
起動直後の画面は、何もない状態です。Unityは画面の構成を適宜、使いたいように変えられますが、わかりにくくならないように、今回はこのままで説明していきます。
起動直後はGame
のタブ(ゲーム実行時の画面の状態)が中央にありますが、これをScene
のタブを押して切り替えて下さい。そうすると、ゲーム設計するための画面表示になります。
その状態でこれからは進めます。
##ステージを作る
ここから箱を使ってステージを作ります。
###箱を出す
上に在るメニューの[GameObject]>[3D Object]>[Cube]を選択して下さい。
すると、画面の中央に白い箱(Cube
)が登場します。
###ステージの上部分にする
この箱の形と位置を変えて、ステージの上部分にしましょう。
####箱の大きさを変える
大きさを変えたい場合は、[Inspector]タブの[Transform]を使います。[Inspector]タブの内容は、ステージ上に置いてある物のどれを選んでいるかで変わります。
この箱を、スタージ上部にするために、横長にしましょう。横長にするには、[Scale]を変更します。横方向はxになるので、[x]の値を変えてみましょう。[x]の部分にマウスを重ねると、カーソルが左右矢印(⇔)に変わります、その状態でスクラブ(マウスボタンを押したまま横にに動かす)と、[x]の値が変わると同時に形状が変化します。
これで見ながら変えてもいいのですが、後から他の部分と接合して作るので、きちんとした値の方が便利です。ここでは、値を10にします。
他の方向の大きさも変えられますが、今回はそのまま1
にしておきます。
#####箱の位置を変える
次に、今ある場所からステージの上部になるような形の場所に移動させます。
######見やすい方向からの表示に切り替える
このままだと、今見ている所が左斜め上の手前から見た状態になっています。これだと少し見にくいので、観てる視点の位置を変えます。
[Scene]タブの右上に、矢印のような物があります、これのコーンの部分をクリックすると、その座標が視点の方向に切り替わります。
垂直、水平などの位置から見たい場合、これを使います。真ん中の箱をクリックすると、遠近感の有り無しが切り替わります。遠くにある物体と幅や高さを較べたい場合に有効です。今回のステージはxz平面に創ろうと思います。見やすいのはy座標の方向からになるので、画面の状態にしましょう。上がzで右がxです。
このままだと縦長にステージを配置するには全体が捉えらないので、少しズームアウトしましょう。
縦のスクロール操作(Windowsのマウスならホイール、タッチパッドなら2本指で上下)でズーム操作が出来ます。
視点の方向をそのままに、位置を変えたい場合は、エディタの左上にある手のひらに切り替えます。
その状態でドラッグすると、視点になっている場所が平行移動します。
今の箱をステージの上部分として全体が見えるよう、以下の状態の表示にします。
####数値入力で位置を移動する
箱の位置を変えます。数値で正確に入れたほうが後から便利なので、ここでは[Inspector]の[Transform]で変えていきます。位置を変えるのは[Position]です。
前に大きさを変えたように、値をスクラブすることでも変更できます。
ここでは、これを上にするので、z
を10にしましょう。
####後からわかるように名前を変える
移動が出来たので名前を変えます。[Inspector]で名前をTopWall
としました。
###コピーして下の壁にする
他の部分を作ります。これで上部分は出来ており、これと同じ大きさを画面の真下に配置すると良いですね。
####複製する
TopWall
を複製します。TopWall
を選択したままで、メニューの[Edit]>[Duplicate]を選びます。
出来上がったオブジェクトはTopWall1
となって、出来上がっています。左上の[Hierarchy]タブで確認して下さい。
####複製したオブジェクトを移動する
新しいオブジェクトが選択されている状態で[Inspector]の[Transform]で変えていきます。位置を変えるのは[Position]でしたね。ここでは画面下方向なのでz座標を変えていきます。
ここでは、原点にして対象の部分とすると分かりやすいので、z
を-10
にしました。
####後からわかるように名前を変える
移動が出来たので名前を変えます。[Inspector]で名前をBottomWall
としました。
###左の壁を作る
左の壁を作りましょう。他の部分も同様の方法で作れます。
####とりあえず作成し、配置する
上に在るメニューの[GameObject]>[3D Object]>[Cube]を選択して下さい。出来上がったCube
を移動させて、左にします。TopWall
,BottomWall
はScale
のx
が10
でしたから、左だとx
が-5
で丁度、くっつくはずです。
####位置の調整
接合部分を拡大すると、こうなっています。ポリゴンが食い込んでいるのが判ります。
これは、物体の座標を管理している点が、重心になっているためです。幅が1
なので、左右に動かして接着した形にしたい場合は、大きさを意識した値にする必要があります。x
が-5.5
だと、丁度になります。
####名前の設定
名前を変えていなかったので、変えましょう。ここではLeftWall
としています。
###右の壁を作る
右の壁は、上の壁から下の壁を複製したのと同様で作れます。
####複製する
LeftWall
を複製します。LeftWall
を選択したままで、メニューの[Edit]>[Duplicate]を選びます。
####複製したオブジェクトを移動する
新しいオブジェクトが選択されている状態で[Inspector]の[Transform]で変えていきます。位置を変えるのは[Position]でしたね。ここでは画面右方向なのでx座標を変えていきます。
位置を原点で左右対称にしたいのならば、LeftWall
のx座標-5.5
の反数にすればいいので、5.5
に設定します。
####名前の設定
名前を変えていなかったので、変えましょう。ここではRightWall
としています。
#ここまでのまとめ
ここまでに学習した内容は、以下になります。覚えているか、確認しましょう。
- 座標空間は3次元で、xが左右、yが上下、Zが奥行き。
- [Game]タブはゲーム実行画面、編集したいときは[Scene]タブ
- [Scene]タブで視点を変えたいときは
- 右上のxyzの矢印で角度操作
- ホィールで奥、手のひらで平行移動
- 四角い箱を出したいときはメニューから[GameObject]>[3D Object]>[Cube]
- 大きさを数値で変えたいときは、[Inspector]タブの
Transform
>Scale
- 位置を数値で変えたいときは、[Inspector]タブの
Transform
>Position
- 複製はメニューの[Edit]>[Duplicate]
これらを理解しているとして、以降を説明します。自信がない場合は、もう一度、繰り返すと良いでしょう。「同じものを作るのは無駄だ」と思うかもしれませんが、そんなことはありません。後々、楽になるなら、ここで復習しておいたほうが得策です。これから先の方が長いので、そこで楽ができるならトータルでかなり楽になる、ということです。
続きはこちらです。
この解説は以下の段階があります、前の内容を実行した上でのものとして参照して下さい。
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(1)ステージ配置
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(2)色を変える
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(3)動くボール
- [[超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(4)ラケットを動かす]
(http://qiita.com/JunShimura/items/5fac20966bba6b223427) - [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(5)消えるブロック
- [超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(6)ブロックを手作業で並べる