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のインストール。