第06回

背景を作る

プロジェクトの準備

  1. このページは 2Dシューティングゲーム を初心者用に簡略化したものです。
    ダウンロードした「第05回プロジェクト」から Assets/Scene/Stage.unity のダブルクリックで起動します。
    Script にエラーがあるらしく、このままでは動かないのでエラーを修正します。
    Assets/Script には Bullet.cs, Spaceship.cs, Player.cs Enemy.cs, DestroyArea.cs が格納されています。
    これらの Script から次の箇所を修正して下さい。
    1. 生成された C# Script には、最初から次の3行が書かれています。
      全ての Script に3行とも必要な訳ではありませんが、不足するとエラーになるので記述する方が無難でしょう。
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      
    2. .velocity を次のように修正して下さい。
      GetComponent<Rigidbody2D>().velocity
      
    3. これまで何度も修正しているので、不明な点は今までのソースを参照して下さい。
  2. 修正が終わると、画面下の赤いエラーメッセージが消えます。
    再生ボタンをクリックすると Player と Enemy がアニメーションしながら弾を発射します。
    弾に当たると Player や Enemy が消滅します。
    矢印キーで Player を操作できることも確認して下さい。
    確認が終わるとメニューの File→Save Scene で保存して下さい。

背景のスクロール

  1. 今回のプロジェクトもかなり難解です。
    そこで Sprite を使って簡単に背景をスクロールする方法を紹介します。
    本来の方法は 2Dシューティングゲーム から 「第06回 背景を作る」を参照して下さい。
  2. background_back の画像を使ってスクロールしてみましょう。
    background_back.png は透明色を設定した画像で、サイズは 640*480 です。
    これを縦に2枚並べて 640*960 の background_back.jpg を作成します。
    3枚の画像を重ねるときは透明色を設定しますが、今回は1枚なので透明色は設定しません。(jpg には透明色の機能がない)
  3. ウインドウエクスプローラで Assets/Textures に background_back.jpg をドラッグして下さい。
    background_back をヒエラルキービューにドラッグすると背景画像が表示されます。
    background_back の Scale を X, Y 共に4に設定すると、画面一杯に画像が広がります。(本当は下半分は隠れている)
  4. 画面左下の [Projectタブ][Createタブ] から [C# Script] を選択すると NewBehaviourScript.cs が作成されます。
    position.y を毎回 -0.1f しながら -9.3f を超えると元に戻します。
    切り替え時に画像が飛ぶときは -9.3f の値で調整して下さい。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class NewBehaviourScript : MonoBehaviour {
        void Update () {
            transform.Translate (0, -0.1f, 0);
            if (transform.position.y < -9.3f ) {
                transform.position = new Vector3 (0, 9.3f, 0);
            }
        }
    }
    
  5. NewBehaviourScript.cs を background_back にアタッチして下さい。
    再生ボタンをクリックすると背景画像が縦方向にスクロールします。
  1. 本来の背景は透明色を設定した3枚の画像(background_back.png, background_front.png, background_middle.png)を組み合わせてスクロールしています。
    スクロールの速度は transform.Translate (0, -0.1f, 0); の -0.1f で調整して下さい。
  2. 背景画像の上下関係は Inspector の Order in Layer で簡単に設定することが出来ます。
  3. 省略したプログラムの詳細は 2Dシューティングゲーム から 「第06回 背景を作る」を参照して下さい。
    第06回 の完成したプロジェクトは、後部の「今回のプロジェクトファイルをダウンロード」からダウンロードすることが出来ます。

[Next Chapter ↓] Shooting-07
[Previous Chapter ↑] Shooting-05

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Unity)