Unity4.3新機能とか Haxeで何かつくったはなし。(前編 : Haxeビルドまで。)

  • 10
    いいね
  • 5
    コメント
この記事は最終更新日から1年以上が経過しています。

Haxeで、Unity3Dの4.3の新機能を使い、2Dゲームを作った話し。

Haxe + Unity3D

  • Unity3d 4.3.1
  • Haxe 3.0.1

エディタ

  • Sublime Textでやってみた。

環境構築

  • Mac OS 10.9, Marvericks

Unity

Haxeのインストールとか

やりかたは2つ

  • ココでダウンロードする( http://haxe.org/download )
  • 最近はhomebrewで入れるのもありかも ( brew install haxe )

ひたすらhaxelib install

コンパイルしたりするのに必要だお

haxelib install hxcs
haxelib install unity3d

プロジェクトを作る。

はいこんな感じ、Unity3d起動して、New Project。プロジェクト名は「Haxe-Unity」

スクリーンショット 2013-12-14 9.36.23.png

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を指定して、それに向かって進むというスクリプトですの。

MyClass.hx
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設定はこんな感じ

スクリーンショット 2013-12-14 10.34.30.png

CubeのInspectorはこんなかんじ

スクリーンショット 2013-12-14 10.34.53.png

これで実行すると、Main CameraにCubeが近づいていきます。

後編へ続く

こっからは、Unity2Dの機能とかをフルに使って2Dゲームを作って行くので、明日の
Unity Advent Callendar ( http://qiita.com/advent-calendar/2013/unity )が僕の担当なのでそこで、ゲームもUnity2D + Haxeで、2Dゲームを作る(後編)をやります。たのしみにねー。

明日のHaxe Advent Callendarは

@arlez80君です。よろしくー。