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

Unity で iPhone & Android アプリをつくろう。

Unity for iPhone and Android
http://unity3d.com/japan/mobile.html

Unity Spring 2010 Highlight Reel from Unity3D on Vimeo.

Unity は、本格的なゲームの開発を誰でも可能にすることを目標に作られたゲーム開発ツールです。
iPhone や Android などのプラットフォームに対して効率よくゲームを提供することが可能です。


ダウンロード

UNITY: Download and Start Creating Games
http://unity3d.com/unity/download/


Unity から MonoDevelop を関連付ける

Unity といっしょにインストールされる MonoDevelop を Unity のエディタとして関連付けます。

Windows の場合
Unity [Edit]_[Preferences]_[External Script Editor]
Unity\MonoDevelop\bin\MonoDevelop.exe を選択

Mac の場合
Unity [Unity]_[Preferences]_[External Script Editor]
アプリケーション/Unity/MonoDevelop.app を選択

これで、Unity の Project パネルから js, C# ファイルを MonoDevelop で開くことができます。


Mac MonoDevelop の GUI 日本語 文字化け対応

MonoDevelop.app を右クリックで、[パッケージの内容を表示]
/Contents/Frameworks/Mono.framework/Versions/Current/etc/gtk-2.0/gtkrc
font = "Lucida Grande 12"
の下に
font_name ="Hiragino Kaku Gothic Pro 12"
を追加する。

sd-tech: MonoDevelop(Unity) for Macの日本語文字化けを直す
http://www.sd-tech-blog.com/2011/01/monodevelopunity-for-mac.html


Mac MonoDevelop の 日本語 文字化け対応(表示)

MonoDevelop [Prefarences]_[テキストエディタ]_[一般]_[フォント]_[カスタム]
"Hiragino Kaku Gothic Pro W3, 12" を選択。
ただし、表示だけで、直接 日本語の入力はできません。テキストエディット等をコピペで入力は可能。


デバッグ

ブレークポイントを指定してデバッグするには、Unity を MonoDevelop から起動する必要があるみたいです。一度、Unity を閉じて、
MonoDevelop [Run]_[Debug] を実行すると Unity が起動して、デバッグが開始します。


Unity の基本

Unity は、GameObject と Component の関係を理解することがまず一歩目。

Component
メッシュ、マテリアル、地形データ、パーティクルシステムなどの描画要素を表します。
カメラ、ライトなどの抽象的なものもあります。

GameObject
Componentのコンテナ。
全ての GameObject は、位置と向きを指定する transform コンポーネントを持ちます。
複数の Component をひとつの GameObject に付加できます。また、複数のスクリプトも格納できます。
しかし、パーティクルシステムを定義するようなコンポーネントは、1つの GameObject に1つだけです。
もし、複数のパーティクルシステムを使用したい場合は、ゲームオブジェクトを階層化し、複数がパーティクルシステムを保持するようにします。

Prefabs
テンプレート定義されたアセット。
Project で、Prefabs をクリックし、設定(Inspector)を変更すると Scene 中の全てのインスタンスに即座に適応されます。
ゲームに登場する敵など再利用可能な要素。敵の動きを変更したい場合、Scene 中のそれぞれの敵の設定を変更するのではなく、
オリジナルの Prefab に設定されたスクリプトを変更すれば OK です。
Scene 中の特定のインスタンスだけに個別に設定を行うことも可能です。


Flash 技術者のための Unity 講座

Unity for Flash Developers - Tutorial 1

Unity for Flash Developers - Tutorial 1 from Richard Hart on Vimeo.

こちらに Flash 技術者のための Unity のチュートリアル動画があります。動画は、Tutorial 1 ~ Tutorial 7 まであります。
Flash Lite や AS2 以降の Flash 経験者であれば、理解できる内容になっています。

Unity は、C#, または js でコードを書きます。

例)Project にある Prefab を動的に生成するには、Instantiate を使用します。

var object:GameObject;	// Prefab
var instance:GameObject = Instantiate(object, transform.position, transform.rotation);

例)Instantiate は最上層に生成されるので親となる GameObject を指定します。

var object:GameObject;	// Prefab
var parentObject:GameObject;
var instance:GameObject = Instantiate(object, transform.position, transform.rotation);
instance.transform.parent = parentObject.transform;

例)Scene 中にある GameObject を削除します。削除する GameObject 名と何秒後を指定します。

Destroy(gameObject.Find("Hoge"), 3);

例)Scene 遷移

Application.LoadLevel("シーン名");

例)Scene 中にある Hand ( GameObject ) の OtherScript ( Component ) の変数 foo に値をセットします。

transform.Find("Hand").GetComponent(OtherScript).foo = 2;

例)Scene 中にある Hand ( GameObject ) の OtherScript ( Component ) のメソッド DoSomething に引数 ("Hello") で実行します。

transform.Find("Hand").GetComponent(OtherScript).DoSomething("Hello");

Unity Script Reference ? Overview: Accessing Other Game Objects
http://unity3d.com/support/documentation/ScriptReference/index.Accessing_Other_Game_Objects.html


iTween

iTween for Unity by Bob Berkebile (pixelplacement)
http://itween.pixelplacement.com/index.php

Unity に移植された Tweener ライブラリです。Plugins に設置して使用できます。

使用例


iTween.MoveTo(gameObject,{"x":3,"time":4,"delay":1,"onupdate":"myUpdateFunction","looptype":"pingpong"});
iTween.MoveTo(gameObject,Vector3(2,0,0),2);

iTween ドキュメント
http://itween.pixelplacement.com/documentation.php


Unity はじめてみて

以前、Android で OpenGL でつくったゲームと同じ内容のものを Unity でつくってみたのですが、1 週間かかったものを 数時間でつくることができました。
ガラケーからスマホへという流れで、ゲーム開発に必要だったものは、Flash と同等(それ以上)の表現力、そして iPhone と Android の同時リリースといったものが挙げられます。
Unity は今後のゲーム開発の鍵となるでしょう。毎日が発見の連続で、Flash をはじめてさわったワクワク感を思い出します。
これからも Unity の情報を載せていきたいと思います。

HTML5飯