海賊王をめざす男 マツです。こんにちは。

最新各地で動きのある Unity ですが、初歩の進めとしてアングリーバード的なゲームをつくる簡単なデモを紹介します。

Demo
画面をクリックするとボールが発射します。

ブラウザでも確認できるように Unity の Web プレイヤーで書きだしています。
Unity Web Player ダウンロード
http://unity3d.com/webplayer/

これが今回のサンプルの完成形

グラウンドとボール、ブロックだけのシンプルなものです。

Unity を起動し、[File]_[New Project] でプロジェクトを新規作成をしたら TestScene という名前のシーンを保存します。


Hierarchy

このような GameObject 構成です。それぞれの作成方法は―

Player となるボール Sphere を作成
[GameObject]_[Create Other]_[Sphere]
Sphere に Rigidbody コンポーネントを追加
[Component]_[Physics]_[Rigidbody]
Sphere から Player に名前を変更。
(名前は、適当なもので OK です。)


Ground となる Cube を作成
[GameObject]_[Create Other]_[Cube]
Scale を調整して、地面とみたてます。


ブロック となる Cube を作成
[GameObject]_[Create Other]_[Cube]
Cube に Rigidbody コンポーネントを追加
[Component]_[Physics]_[Rigidbody]

Inspector の Mass で、Cube の質量を調整します。
値が小さくなると軽い Cube となります。
Cube を複製してブロックを積み上げます。
それぞれの Cube の Scale を調整して、縦長、横長のブロックを用意します。


明りとなる Point Light を作成
[GameObject]_[Create Other]_[Point Light]
GameObject がよくみえるところに配置してください。


ボールを発射する

PlayerConntroller となる空の GameObject を作成
[GameObject]_[Create Empty]

Project に JavaScript ファイルを作成します。
Project [右クリック]_[Create]_[JavaScript]

PlayerController.js

var player : GameObject;
var shootPowerX : float = 400.0;
var shootPowerY : float = 400.0;
function Update () {
	if ( Input.GetButtonDown("Fire1") ) {
		player.rigidbody.AddForce(shootPowerX, shootPowerY, 0);
	}
}

マウスクリックされたら、player に対して、力を加えるという簡単なお仕事です。

PlayerController.js を Hierarchy の PlayerConntroller(空の GameObject) にドラッグ&ドロップします。
自作のコンポーネントをつくり、GameObject に対して適応させたということになります。
Hierarchy の PlayerConntroller を選択すると Inspector にコンポーネントのパラメータが表示されます。

Player のところに Hierarchy の Player をドラッグしましょう。


リセットボタンをつくる

空の GameObject を作成
[GameObject]_[Create Empty]
名前を Trigger とします。

Project に JavaScript ファイルを作成します。
Project [右クリック]_[Create]_[JavaScript]
名前を Trigger.js とします。

Trigger.js

function OnGUI () {
	if ( GUI.Button(Rect(10, 10, 50, 50), "Reset") ) {
		Application.LoadLevel("TestScene");
	}
}

Reset ボタンをクリックしたら、シーンを再読み込みをするものです。

Trigger.js を Hierarchy の Trigger(空の GameObject) にドラッグ&ドロップします。


デモ

Demo
画面をクリックするとボールが発射します。

ブラウザでも確認できるように Unity の Web プレイヤーで書きだしています。
Unity Web Player ダウンロード
http://unity3d.com/webplayer/


ボールやブロックの数や設定を調整することで面白いゲームがつくれると思います。
Unity のゲームエンジンの可能性がなんとなくつかめたでしょうか。
Unity は 3D 描画や物理演算に加えて、パーティクルなどの GUI もそろっています。

今年の夏休みの自由研究は、Unity で決まりです!

HTML5飯