ども!カトサンラボのかとこうです。
この記事では、
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】障害物の配置と当たり判定の作成