4.3触ってみたAndroidiPhoneJavaScriptこんにちは。システム部の長野です。ブログのデザインがリニューアルして初めて書きます。リニューアルに伴ってメンバー紹介ページができました。最近Unityを触ってみたので今回はそのことについて書きます。けのモバイル向け機能が完全無償化され、2013年11月にリリースされたバージョン4.3では2D向けの開発ツールが含まれたり、さらにスクリプト言語もUnityScriptというJavaScriptにかなり似ている言語になっています。(他にもC#やBooと言った言語も使えます)つまり、Unityを勉強すれば個人的にiPhoneやandroidでバリバリ2D/3Dなゲームを作って売れる!次の社内向け新事業ハッカソンでUX&UIの高いネイティブアプリが作れる!という思いからです。動くものを作ろうこれが無いとブログのネタにできないので、簡単なスクリプトのサンプルを作ってみました。今回は・4.3から実装された2D開発ツール・元々ビルトインされている物理エンジンを使って、2Dの玉を飛ばして建物を破壊する某人気ゲームのようなサンプルを作ってみました。Playerのインストールが必要です。左にある緑の玉をマウスでドラッグして離すとドラッグの反対方向に飛びます。玉は何度でも飛ばすことができます。今回書いたスクリプト全文です。基本的にオブジェクトの初期配置やphysicalな属性を持たせる等はすべてGUIで行い、スクリプトに記載したのは「玉をマウスでドラッグアンドドロップして飛ばす」という処理のみになります。このオブジェクトの配置とロジックを分けることができる辺りはFlashに似ていると思いました。このスクリプトにinit.jsという名前をつけて、Hierarchy内に作成した空のGameObjectに関連づけています。GameObject.Find("tama");}このStartという関数が初めに呼ばれます。ここでは画面内の緑のボールオブジェクトをballObjグローバル変数にセットします。今回インスペクタの解説はしないためあえてここに書きました。mouseInput;}}Updateという関数はフレーム毎に呼ばれ、クリックイベントの捕捉はこの関数内で行います。マウスがクリックされたときにInput.GetMouseButtonDown(0)1Input.GetMouseButtonDown(0)の判定がtrueになり、中の処理に入ります。-Vector2.up);でクリックしたオブジェクトを取得します。mouseInput;}の処理に入りonMouseDownFlgフラグを立ててポイントした座標を記録します。yforce);}if(onMouseDownFlg){1if(onMouseDownFlg){onMouseDownFlgのフラグでマウスがドラッグ中か判定します。Input.mousePosition.y;でクリック時に保存した座標から現在のマウス位置までの座標の差を取得します。-1000;でリミットをかけて想定以上の力で飛ばないようにします。yforce);距離をvector2型に変換し、グローバル変数に格納します。0;obj.rigidbody2D.AddForce(direction);}}マウスが放されたときにobj.rigidbody2D.AddForce(direction);1obj.rigidbody2D.AddForce(direction);という関数を使ってdirectionの方向に力を加えます。これでボールがその方向に向かって飛ぶようになっています。ドラッグ中であることをやめるためにonMouseDownFlgのフラグも落とします。最後に解説は以上になります。上記のスクリプトだけでゲームのメインとなる「球を飛ばして建物を破壊する」ができてしまうのはすごいですね。機会があれば弊社のサービスでも使ってみたいです。naganoサービス開発や社内インフラ等を担当しています。このブログではJavaScript周りのネタを中心に書いていきたいです。US私たち”アライドアーキテクツのエンジニア”は”世界をよりよく変えたい”という想いを強く持ちながらWebサービスを創っています。”日本発、世界的なWebサービスを創る”ことをエンジニアチームは本気で考え、毎日チャレンジしています。