Haxeで、Unity3Dの4.3の新機能を使い、2Dゲームを作った話し。
Haxe + Unity3D
- Unity3d 4.3.1
- Haxe 3.0.1
エディタ
- Sublime Textでやってみた。
環境構築
- Mac OS 10.9, Marvericks
Unity
- 公式からインストール ( http://japan.unity3d.com/unity/download/ )
Haxeのインストールとか
やりかたは2つ
- ココでダウンロードする( http://haxe.org/download )
- 最近はhomebrewで入れるのもありかも ( brew install haxe )
ひたすらhaxelib install
コンパイルしたりするのに必要だお
haxelib install hxcs
haxelib install unity3d
プロジェクトを作る。
はいこんな感じ、Unity3d起動して、New Project。プロジェクト名は「Haxe-Unity」
Unity3dで、Haxeをビルドしてみたりする
さて、Unity3dのプロジェクトは、Assets Folderにイロイロスクリプトやら、画像やらモデルデータを放り込むので、Assets FolderにHaxeのコードも含めるようにしよー。
ターミナルで
# Haxe-Unityに移動する。
cd Haxe-Unity
# Haxeでなんかやるディレクトリ
mkdir haxe
# Haxeのソースを置くディレクトリ
mkdir haxe/src
という感じでディレクトリを構成しておいて、
build.hxmlを、Haxe-Unity/haxe/build.hxmlに置いて、こんな感じでhxmlを書いておくんー。
-lib unity3d
-cp src/
-cs cs
-D no-compilation
MyClass
これは、MyClassというhaxeのクラスをUnityでコンパイルするという意味です。そしたら、haxeでMyClassをつくりましょう。MyClass.hxを、src以下に配置したー。
ちなみにコードはコレ
speedとTargetを指定して、それに向かって進むというスクリプトですの。
package ;
import unityEngine.MonoBehaviour;
import unityEngine.Time;
import unityEngine.Vector3;
import unityEngine.GameObject;
using UnityHelper;
class MyClass extends MonoBehaviour {
public var target:GameObject;
public var speed:Single;
private function Start():Void {
}
private function Update():Void {
if (speed == 0) return;
getTransform().position = Vector3.MoveTowards(getTransform().position, target.transform.position, Time.deltaTime * speed);
}
}
そしたら、ビルドしてみる
haxe build.hxml
とすると csディレクトリができて、めっちゃそれ以下に一杯ファイルができる。
んで、Unity3dが出きたcsファイルぜーんぶコンパイルしようとするので、ちょっとスクリプトが有効になるまで時間がかかります。
MyClassをつかってみる。
Scene設定はこんな感じ
CubeのInspectorはこんなかんじ
これで実行すると、Main CameraにCubeが近づいていきます。
後編へ続く
こっからは、Unity2Dの機能とかをフルに使って2Dゲームを作って行くので、明日の
Unity Advent Callendar ( http://qiita.com/advent-calendar/2013/unity )が僕の担当なのでそこで、ゲームもUnity2D + Haxeで、2Dゲームを作る(後編)をやります。たのしみにねー。
明日のHaxe Advent Callendarは
@arlez80君です。よろしくー。