ランゲームの作り方

【Unity 2Dランゲームの基礎制作4】カメラが追従する処理を作る

2021年10月19日

ども!カトサンラボのかとこうです。

この記事では、

Unity初心者の方や入門者の方向けの
ゲーム制作情報として

Unityで2Dのランゲームの基礎を約1時間で制作する講座

第4回目の内容を解説しております。

前回の記事はこちら → 【Unity 2Dランゲームの基礎制作3】プレイヤーの横移動とジャンプの操作を作る

4回目の内容では、

カメラが追従してプレイヤーに合わせて移動する処理を作る

という作業を行っていきます。

動画での解説もしていますので、
この記事と合わせて参考に
していただけたら幸いです。

動画解説はこちらです。

2Dランゲーム基礎講座:第4回目の目標について

4回目の内容では、

カメラがプレイヤーに追従する処理の作成

という作業を行います。

行う作業についての目標を
まとめたのが以下となります。

今回の目標

カメラ用のC#スクリプトを作る

カメラ用のC#スクリプトにコードを書いて追従の処理を作る

ヒエラルキーのメインカメラにC#スクリプトを付ける

カメラがプレイヤーを追従するようにインスペクターで設定する

カメラが追従するかテストプレイでチェックする

今回の作業目標は全部で5つです。

この5つの作業について細かく
解説をしているので、
何か参考になれば幸いです。

それでは、次の項目から作業を
行っていきましょう!

カメラ用のC#スクリプトを作る

まず最初に行う作業は、

カメラ用のC#スクリプトの作成

になります。

C#スクリプトはUnityエディタの
プロジェクトウインドウにある
+ボタン」から作ることができます。

Project」と書かれている下にある
+ボタン」を押すと、メニューが
出るので、

その中から「C# Script」を選んで
クリックしましょう。

そうするとプロジェクトウインドウに
新しいC#スクリプトが作成されます。

新しく作成されたC#スクリプトの
名前を変更した後にクリックをして
決定します。

今回は「cameraManager」という
名前にしました。

これでカメラ用のC#スクリプトの
作成は完了となります。

カメラ用のC#スクリプトにコードを書いて追従の処理を作る

カメラ用のC#スクリプトを
作成した次は、

C#スクリプトにコードを書いて追従の処理を作成する

という作業を行っていきます。

まず、作成したカメラ用の
C#スクリプトをダブルクリックして
開きましょう。

開けるとVisual Studioなどのコードエディタが開きます。

Visual Studioが開いた画像。

ここにカメラが追従する処理のコードを書いていきます。

今回は以下のコードを書きました。

コピペしても大丈夫です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cameraManager : MonoBehaviour
{

    public GameObject target; // 追従する対象を決める変数
    Vector3 pos;              // カメラの初期位置を記憶するための変数

    // Start is called before the first frame update
    void Start()
    {
        pos = Camera.main.gameObject.transform.position; //カメラの初期位置を変数posに入れる
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 cameraPos = target.transform.position; // cameraPosという変数を作り、追従する対象の位置を入れる

        // もし対象の横位置が0より小さい場合
        if(target.transform.position.x < 0)
        {
            cameraPos.x = 0; // カメラの横位置に0を入れる
        }

        // もし対象の縦位置が0より小さい場合
        if (target.transform.position.y < 0)
        {
            cameraPos.y = 0;  // カメラの縦位置に0を入れる
        }

        // もし対象の縦位置が0より大きい場合
        if (target.transform.position.y > 0)
        {
            cameraPos.y = target.transform.position.y;   // カメラの縦位置に対象の位置を入れる
        }

        cameraPos.z = -10; // カメラの奥行きの位置に-10を入れる
        Camera.main.gameObject.transform.position = cameraPos; // カメラの位置に変数cameraPosの位置を入れる

    }
}

コードを入力できたら、
作業は完了です。

●補足

動画解説では「pos」という変数を
使い忘れており、

pos変数で設定しようと思っていた
部分に数字を入れてしまっていました。

でも数字の方が最初はわかりやすいと
思うのでまぁ良いかなと思っています。

ヒエラルキーのメインカメラにC#スクリプトを付ける

コードが書けたら次の作業は、

カメラにC#スクリプトを付ける

という作業になります。

まず、ヒエラルキーにある

Main Camera

を選んでクリックします。

そして、コードを書いたカメラ用の
C#スクリプトをクリックして、

クリックしたままインスペクターの
Add Componentのあたりまで
移動させてクリックを離します。

そうするとMain Cameraの
インスペクターウインドウに
カメラ用のC#スクリプトが付きます。

これでカメラにC#スクリプトを
付ける作業は完了です。

カメラがプレイヤーを追従する設定を行う

Main CameraにC#スクリプトを
つけた次は、

カメラがプレイヤーを追従する設定を行う

という作業を行っていきます。

C#スクリプトをつけたMain Cameraの
インスペクターを見ると、

C#スクリプトをつけたところに
Target」という項目があります。

そこの横の枠に

カメラが追従したい対象

を設定すればOKです。

今回はカメラがプレイヤーを
追従するように設定したいので、

Targetの右の枠にヒエラルキーから
birdをドラッグ&ドロップして設定します。

birdをクリックしたまま
Targetの枠の中まで移動させて
クリックを離せば設定完了です。

設定ができると、ちゃんと枠の中に
「bird」と表示されます。

カメラが追従するかテストプレイで確認する

カメラが追従する対象を設定したら、

プレイヤーを追従するか確認する

という作業を行っていきます。

テストプレイはUnityエディタの
シーンビュー上部にある

プレイボタン

をクリックすると行うことできます。

プレイボタンを押すとプレイヤーの
トリさんが横に移動していきますが、

トリさんが画面外に出ないで
ずっと表示されていれば確認はOKです。

これで今回の

カメラの追従処理の作成

という作業は完了となります。
お疲れ様でした!

Unity2Dランゲームの基礎制作講座・第4回目のまとめ

今回の記事では、

Unityで2Dのランゲームの基礎を約1時間で制作する講座

の第4回目の作業内容について
お伝えさせて頂きました。

4回目の作業目標は最初にも
書きましたが、以下の内容です。

今回の目標

カメラ用のC#スクリプトを作る

カメラ用のC#スクリプトにコードを書いて追従の処理を作る

ヒエラルキーのメインカメラにC#スクリプトを付ける

カメラがプレイヤーを追従するようにインスペクターで設定する

カメラが追従するかテストプレイでチェックする

細かく5つに分けて今回の作業を
解説させて頂きました。

今回の作業を行ったことで、
プレイヤーが動くのに合わせて
カメラが追従して移動するように
なりました!

どんどんランゲームが完成に
近づいていきますね!

次回の5回目では、

障害物の設置と当たり判定を作る

という作業を行っていきます。

障害物を置くことでそれをジャンプで
避けるというゲーム性が出るので
ランゲームで大事な要素ですし、

当たり判定は色々と使える処理に
なるので、また続きを見て頂ければ
とても嬉しいです!

今回の記事や動画の内容で1つでも
お役に立つ部分があれば嬉しく思います!

ここまで読んでいただきありがとうございました!

5回目の記事はこちらです → 【Unity 2Dランゲームの基礎制作5】障害物の配置と当たり判定の作成

-ランゲームの作り方