Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@nobkz

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

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君です。よろしくー。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
8
Help us understand the problem. What are the problem?