はじめに
プレイヤが移動できるようになったので、ステージを作っていきます。
また、ステージ移動の際にカメラがプレイヤに合わせて動くようにしたいと思います。
前回の記事
ステージを作る
地面のPrefabを作ることで地面を量産していきます。
Prefabは、同じものをたくさん作りたい場合に使います。
原本の地面(base)をプロジェクトウィンドウにドラッグアンドドロップします。
すると、地面のPrefabが作成されます。
作成された地面のPrefabをステージ(シーンビュー)に必要な数だけドラックアンドドロップします。
※ここでは消し忘れましたが、原本は削除して大丈夫です。
ジャンプをして地面に着地していくゲームっぽくなりました。
ですが、このままでは画面範囲外に移動してもカメラが追従しないため、🦀が消えてしまいます。
カメラがプレイヤに追従するようにする
カメラもゲームオブジェクトの一種のため、スクリプトをかくことで動かすことができます。
ファイル名をCameraControllerとしてスクリプトを以下のようにかいてみました。
using UnityEngine;
public class CameraController : MonoBehaviour
{
GameObject player;
// Start is called before the first frame update
void Start()
{
this.player = GameObject.Find("Kani");
}
// Update is called once per frame
void Update()
{
Vector3 pos = this.player.transform.position;
transform.position = new Vector3(pos.x, transform.position.y, transform.position.z);
}
}
プレイヤの座標を調べて(pos)、x座標をプレイヤに合わせて変更するようにしています。
スクリプトをカメラコントローラにアタッチして動かしてみると、カメラがプレイヤに合わせて動くようになりました!
おわりに
ステージを移動させていく処理をjavascriptで作成したときはめんどくさかったので、カメラにスクリプトを当てることでこんなに簡単に移動できるゲームが作れていいなと思いました。