-
Notifications
You must be signed in to change notification settings - Fork 3
第02回 複数の解像度に対応する(引き伸ばす)
この回はゲーム制作編第12回終了時点のプロジェクトを使用します。
まずFile → Project Settings...
でPlatformをAndroidまたはiOSに変更しましょう。今回はAndroidへ変更を行います。
次にゲームビューの画面サイズを**16:10 Landscape (16:10)**にしましょう。
図2.1のように青色の背景が見えていたら正常です。
図2.1: カメラの見える範囲が広くなった状態
今回は、画面サイズの変更によるBackgroundsとDestroyAreaの修正を「引き伸ばす」事によって対応します。
図2.2: Front, Middle, Backそれぞれのスケール
Background.csにコードを追加して、スケールを画面サイズに合わせるように変更します。
Background.cs
using UnityEngine;
public class Background : MonoBehaviour
{
// スクロールするスピード
public float speed = 0.1f;
void Start ()
{
// 画面右上のワールド座標をビューポートから取得
Vector2 max = Camera.main.ViewportToWorldPoint (new Vector2 (1, 1));
// スケールを求める。
Vector2 scale = max * 2;
// スケールを変更。
transform.localScale = scale;
}
void Update ()
{
// 時間によってYの値が0から1に変化していく。1になったら0に戻り、繰り返す。
float y = Mathf.Repeat (Time.time * speed, 1);
// Yの値がずれていくオフセットを作成
Vector2 offset = new Vector2 (0, y);
// マテリアルにオフセットを設定する
renderer.sharedMaterial.SetTextureOffset ("_MainTex", offset);
}
}
ゲームを再生してみましょう。ゲーム再生直後に背景が画面いっぱいに広がるはずです。
図2.3: 変更前のDestroyArea
DestroyAreaもBackgroundと同じようにスケールを変更していきます。
DestroyArea.cs
using UnityEngine;
public class DestroyArea : MonoBehaviour
{
void Start ()
{
// 画面右上のワールド座標をビューポートから取得
Vector2 max = Camera.main.ViewportToWorldPoint (new Vector2 (1, 1));
// サイズを求める
Vector2 size = max * 2;
// BoxCollider2Dのサイズを変更
GetComponent<BoxCollider2D> ().size = size;
}
void OnTriggerExit2D (Collider2D c)
{
Destroy (c.gameObject);
}
}
今回はここで終了です。つまずいてしまった方はプロジェクトファイルをダウンロードして新たな気持ちで次の回へ進みましょう。
Before you start this tutorials
01:Make sprite and sprite-animation
02:Move player
03:Shooting bullet from player
04:Make enemy
05:Collision Detection, Animation Event, Layer
06:Make background
07:Mechanism making of Wave type
08:Put on sounds
09:Limit player's move and some adjustment
10:Title
11:Enemy HP, bullet power, animation
12:More Waves and add Score
第01回 複数の解像度に対応する(黒帯を追加する)
第02回 複数の解像度に対応する(引き伸ばす)
第03回 タッチパネル対応
第04回 バーチャルジョイスティック対応