15. ゲーム開発(3/3)
ゲーム開発のひな型プロジェクト:
これまでの作業結果を mobile_system_3112789e というフォルダで、レポートフォルダに置いておきます。
■ Unity の Version up について
使用する Asset が、最新版のユニティ Unity 4.6~ にしか対応していない場合、演習室の Unity を最新版に更新しますので、申し出てください。
【お知らせ】 Unity 4.6 には GUI の作成・編集機能が付きます。 http://tsubakit1.hateblo.jp/entry/20140609/1402242586 Unityの新GUI、uGUIはどうなる?こうなる!
■ スマフォ版のデバッグについて
バーチャルパッドを画面に配置して、操作用コードを CrossPlatformInput に切り替えると、キーボードからの操作が受け付けられず、
パソコン上でキャラクターの動作確認ができなくなります。
Unity のメニューの Mobile Input から、バーチャルパッドの ON/OFF が切り替えができます。
バーチャルパッドをOFFにすると、キーボードでキャラクターが操作できるようになります。
これで、いちいち実機にアプリをDLして動作確認する手間を省くことができます。
■ 練習課題のゲームのUI調整のヒント
今回の講義では、Sample Asset の Mobile device control 用の Prefab の中の
Mobile Single Stick Control Rig で バーチャルジョイスティック + JUMP ボタンを表示して操作
で、対応しましたが、
Mobile Character Control Rig
に切り替えると、操作性を向上させることができそうです。
(手順)
・Mobile Single Stick Control Rig をインスペクターのチェックボックスをOFFにして非機能にする。
・Mobile Character Control Rig を Assets から hierarchyに配置する。
・Turn Area Label の非表示
・Turn Swipe Touchpad の非表示
・Move Touchpad の非表示
・MoveTouch Area のサイズ調整( GUITexture の Pixel Inset の W など)
Mobile Character Control Rig は基本的に、3Dのステージ上のFPSタイプのゲームキャラクターの操作ができるようになっています。
Game実行画面上に表示される、Move Touch Area でキャラクターの左右方向の動きを
操作する場合、タッチ領域上のスライド操作 が キー入力の方向 として扱われるようになるので、次のコードで、キャラクターの動きをコントロール可能です。
// キーの入力方向を取得する
float horizontal = CrossPlatformInput.GetAxis ("Horizontal");
+
this._moveCharactor (Vector2.right * _horizontalForce * horizontal);
その他)
Unityのゲームにスマホ向けなバーチャルパッドを追加する(Unity 4.6仕様) http://tsubakit1.hateblo.jp/entry/2014/10/09/035003
シーン遷移(画面切り替え) に効果をつける → unity scene Transition で検索
一定時間経過後に、何かの処理を行う。 → unity コルーチン で検索 http://wonderpla.net/blog/engineer/Unity_Co-routine/
ゲーム画面の一時停止 http://tsubakit1.hateblo.jp/entry/20130912/1378922383
Animation 機能で、Sprite に動きを設定する。 http://0310unity.hateblo.jp/entry/unity_animation_basic
サウンド再生 http://marupeke296.com/UNI_SND_No1_Basic.html 効果音の再生 http://marupeke296.com/UNI_SND_No2_Trigger.html
例)
ジャンプ音の追加:
音声ファイルを ゲーム用のフリー素材などで準備します。
素材ファイルを Assets にドラッグ&ドロップで登録。
さらに、Charactor オブジェクトの Inspector から Add componet で、 Audio Source コンポーネントを
キャラクターに追加します。
コードの修正:
CharactorManager.cs に
AudioSource audioSource; // 音源の準備
void Start ()
{
audioSource = this.GetComponent<AudioSource>(); // 音源の初期化
ジャンプしたタイミングで音声再生のコードを追加
public void OnCollisionExit2D (Collision2D col)
{
this._collisionList.Remove (col.gameObject);
if (this._collisionList.Count == 0) {
this._isJumping = true;
audioSource.Play();
}
}