フラッピーバード風ゲームの作り方

Unity 2D カメラのスクリプトを作成して修正しよう!フラッピーバード風ゲームを作る方法その20

かとこう

こんにちは!カトサンラボのかとこうです。

今回の記事では「カメラのスクリプトを
作成して修正しよう」と言うことで、

フラッピー風ゲームのカメラの処理を
改めて作って修正していきますね。

具体的には縦方向のカメラの移動を
固定しようと思います。

今回の作業の流れ(5ステップ)

カメラ用のC#スクリプトを新規作成して修正しようの手順画像

動画での解説はこちら(2時間48分33秒くらいから)

スポンサーリンク

1、カメラの縦位置を設定しよう

まずはカメラの縦位置を
どこで固定するかを決めます。

カメラの縦位置を設定する手順

  • Unityエディタで「Main Camera」を選択する
  • Inspectorビューで「Transform」→「Position」のYの値を調整する
    → 今回は 7 に設定しました(プレイヤーが画面内に収まる範囲)

この位置にカメラの縦位置を固定して、
ここから動かないような処理を作ります。

トランスフォームのポジションのY軸を7にした画像

2、新しいC#スクリプトを作ろう

次に、カメラが縦に移動しないプログラムを書く
スクリプトを作成します。

スクリプトの作成手順

  • Projectウィンドウの「+ボタン」→「C# Script」をクリックする
  • 名前を FlappyCamera に変更する(わかりやすければなんでもOK)
カメラ用の新しいC#スクリプトを作った画像

そして、新しいスクリプトが作れたら
それをMain Cameraにドラッグ&
ドロップしてつけましょう。

スクリプをつける手順

  • ヒエラルキーでMain Cameraをクリックする
  • 作ったスクリプトを Main Cameraのインスペクターにドラッグ&ドロップしてつける
新しいカメラ用のC#スクリプトをメインカメラにつけた画像

3、スクリプトを編集して縦固定のカメラを作ろう

作成したC#スクリプト「FlappyCamera.cs」 を
ダブルクリックしてコードエディタを開きましょう。

すでに作成済みのカメラスクリプトがあるので、
今回はそれをコピーして修正していきますね。

新しいカメラ用のスクリプトのコード

using System.Colections;
using System.Colections.Generic;
using UnityEngine;

public class FlappyCamera : MonoBehaviour
{

 public GameObject target; // 追いかけるターゲットを設定する
 Vector3 trackingPosition; // 追いかけた先の位置を設定する

 // Start is caled before the first frame update
 void Start()
 {
 }

 // Update is caled once per frame
 void Update()
 {
  // 追いかけた先の位置の横軸にターゲットの横軸の位置を入れてあげる
  trackingPosition.x = target.transform.position.x;
  // 追いかけた先の位置の縦軸に7を入れてあげる
  trackingPosition.y = 7;
  // 追いかけた先の位置のz軸に-10を入れてあげる
  trackingPosition.z = -10;

  Camera.main.gameObject.transform.position = trackingPosition;
 }
}

5、カメラのターゲットを設定しよう

コードを書いたら、カメラがどのオブジェクトを
追いかけるかをインスペクターで設定しましょう。

カメラのターゲットの設定手順

  • Hierarchyから「Player」オブジェクトを選択する
  • Main CameraのInspectorにある FlappyCameraスクリプトの「Target」欄に「Player」をドラッグ&ドロップする
  • 元々ついていたカメラ用のスクリプトを外す

これで新しいカメラ用のスクリプトを設定できて

「カメラがプレイヤーの横移動だけを追いかける」

と言う処理が作れました。

カメラが追いかけるターゲットにプレイヤーを設定した画像

5、テストプレイで確認してみよう!

ここまでできたらテストプレイを行って
カメラの動作確認をしてみましょう。

テストプレイの手順

  • シーンビューの上にある「▶」プレイボタンをクリックしてテストプレイを開始する
  • プレイヤーがジャンプしてもカメラが上下に動かないか確認する

画面全体が安定して表示され、ジャンプ時に
視点が動かないことが確認できたらOKです。

テストプレイをしてY軸が動かないカメラになったことを確認した画像

カメラの修正のまとめ

今回は、新しいカメラ用のC#スクリプトを作って
Unityでカメラの縦方向を固定すると言う処理の
作り方についてお伝えしてきました。

今回のポイント

  • スクリプトは既存のものを活用すると簡単に修正できる
  • ゲームに応じてカメラの挙動を調整すると、プレイ体験がぐっとよくなる

ゲーム開発ではこうした細かな調整がとても重要になります。

今回の記事でフラッピーバード風ゲームの作り方については
完了となります。

さらにゲームの作り方を学びたいと言う場合には
Udemyで販売中の2Dアクションゲーム講座を
ぜひチェックしてみてくださいね!

-フラッピーバード風ゲームの作り方