下の動画のようにカメラがキャラクターを追従させるようにしていきます。
スクリプトにコードを書いていきますが、コピペ可能なのでよければ参考にしていってください。
キャラクターの見た目はあまり気にしないでください。自分のセンスがないだけなので^ ^
では早速「Camera」というスクリプトを作ります。ここのスクリプト名はなんでもいいです。
下のスクリプトをコピーしますが、8行目の「Player」と15行目の<>、16行目の(“”)の中の「Player」のみカメラを追従させるキャラクターのオブジェクト名を入力してください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class Camera : MonoBehaviour
{
Player player;
GameObject playerObjct;
Transform playerTransform;
// Start is called before the first frame update
void Start()
{
player = playerObjct.GetComponent<Player>();
playerObjct = GameObject.FindGameObjectWithTag("Player");
playerTransform = playerObjct.transform;
}
// Update is called once per frame
void Update()
{
transform.position = new Vector3(playerTransform.position.x, playerTransform.position.y, transform.position.z);
}
}
スクリプトができたらそれをカメラのオブジェクトに貼り付けて完成です。
カメラを少しいじる
カメラは23行目のコードをいじることで色々変化させることができます。
例えばVector3の()内には「playerTransform.position.y」というコードがありますが、ここのplayerのコードを消して「transform.position.y」という形にすればY軸、つまり高さに関してはカメラは追従しなくなります。
初代のスーパーマリオのように横にのみカメラを追従させたい場合は試してみてください。
transform.position = new Vector3(playerTransform.position.x, playerTransform.position.y, transform.position.z);
他にも「playerTransform.position.x」のあとに+と数値を入力するとカメラを少しずらすことができます。
例えば「playerTransform.position.x+5」と入力するとカメラが右に少しずれた状態になります。
通常の状態だとカメラはキャラクターをど真ん中にして写しますが、少しキャラクターを左に移したい場合などはこちらも試してみてください。
transform.position = new Vector3(playerTransform.position.x+5, playerTransform.position.y, transform.position.z);
コメントを残す