Unity4.3が少し前に公開され,2D機能が追加されたようなので,1晩でブロック崩しを作ってみました.製作時間は4時間です.
最初にUnityにて2Dを使用する方法を説明します.プロジェクトの作成画面の下部に2Dか3Dを選択する項目が追加されたようなので,これを2Dにし,プロジェクトを作成します.
製作中は,Sceneビューの2Dをオンにしておくと制作しやすいです.
Spriteという機能を紹介します.SpriteはTexture Typeの1つなのですが,ProjectからHierarchyにドロップすれば自動で長方形が表示される,便利な機能です.例えば,以下のような画像があったとします.
これをAssetフォルダに保存して,Unityに読み込まれたら,InspectorでSpriteに設定します,Sprite ModeをMultipleにすれば1枚の画像から複数のSpriteを作成できます.
MultipleならSprite Editorにてエリアを選択することができます.下のような感じで,適当に区切ります.
すると下のようにSpriteのサブディレクトリに複数のSpriteができます.
これをHierarchyにドロップして位置を調整すれば,こんな感じに2Dで表示されます!すごく便利ですね.
[adsense:block:myad]
Spriteの描写順番はSprite Renderer のSorting Layer と Order in Layerから設定できて,例えばBackground, Blocks, Bar, GUI みたいにLayerを作成して,それぞれのSpriteを適切なlayerに設定することで,別のSpriteの影に隠れることはなくなります.シンプルでよい機能ですね.
次にPhysicsを見ていきます.原則的に,以前のClassの名前の最後に"2D"というものが新たに追加されているようです.
- Sprite Renderer
- Rigidbody 2D
- Circle Collider 2D
- Box Collider 2D
- Polygon Collider 2D
- Physics Material 2D
- Spring Joint 2D
- Distance Joint 2D
- Hinge Joint 2D
- Slider Joint 2D
詳しくはここに書いてありますので,簡単にまとめます.3Dと2DのPhysicsは相互作用しません.互いにすり抜けます.あとは3Dのと同じです.
例えば,ballというSpriteがtirggerのCollider2Dに衝突した時にgameoverにする,というbooスクリプトはこんな感じになります.
def OnTriggerEnter2D(other as Collider2D): if other.gameObject.name=="ball": Application.LoadLevel("gameover")
Unity の Spriteと2Dを使って素直に作成したブロック崩しはこちらから遊ぶことができます.プロジェクトファイルもこちら.
参考:Unity 4.3 - 2D Game Development Walkthrough [youtube] http://www.youtube.com/watch?v=4qE8cuHI93c