12. ゲーム制作入門(4/4)

(予告)

・タッチインターフェースへの対応

・サウンド

・敵キャラクタ―

・敵キャラクタ―AI

・移動オブジェクト

・シーン構成と遷移

・GUILayer によるスコア・ゲーム状態の表示

・メニュー(ボタン)の作成

(参考サイト)

Unity公式サイトの ゲーム作成チュートリアル http://japan.unity3d.com/developer/document/tutorial/

2Dシューティングゲーム作成チュートリアル http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/

モバイル対応 http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/mobile/01.html

タッチイベント関連のブログ記事

http://albatrus.com/main/category/unity

(準備)

先回のプロジェクトを末尾の文字を c から d にコピーして変更。

d の方のプロジェクトを Unity から開く。

タッチインターフェースへの対応

・プロジェクトのビルド(build)設定で、プラットフォームを android OSに変更。

・シーンにステージを追加

・ゲーム画面のアスペクト比を 16:10 の Landscape に変更。

・背景オブジェクトを配置する Backgrounds (空の Game Object スケールは xyz 1 1 1)

子オブジェクトに Quad サイズ調整

スクリプト Background を取り付ける

・画面の左右に、黒枠(ゲーム画面外)を設定し、レイヤーの順番を調整。

・移動範囲の制限設定

GameManager.cs

    // Backgroundコンポーネント
    Background background;

Start()

// Backgroundコンポーネントを取得。 background = FindObjectOfType<Background> ();

Update()

// 背景のスケール

Vector2 scale = background.transform.localScale;

// 背景のスケールから取得

Vector2 min = scale * -0.5f;

// 背景のスケールから取得

Vector2 max = scale * 0.5f;

// プレイヤーの座標を取得

Vector3 pos = this._charactor.transform.position;

// プレイヤーの位置が画面内に収まるように制限をかける

pos.x = Mathf.Clamp (pos.x, min.x, max.x);

pos.y = Mathf.Clamp (pos.y, min.y, max.y);

// 制限をかけた値をプレイヤーの位置とする

this._charactor.transform.position = pos;

画面サイズに合わせてゲーム画面を引き延ばす。

Background.cs

void Start () { // 画面右上のワールド座標をビューポートから取得 Vector2 max = Camera.main.ViewportToWorldPoint (new Vector2 (1, 1)); // スケールを求める。 Vector2 scale = max * 2; // スケールを変更。 transform.localScale = scale; }

バーチャルジョイスティックをアセットストアからダウンロード

http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/mobile/04.html

GameManager.cs の修正

float horizontal = CrossPlatformInput.GetAxis ("Horizontal");

        CrossPlatformInput.GetButtonDown("Jump")

Android 用アプリのビルド:

Android SDKのインストール。

http://developer.android.com/index.html