にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング TIPS(4)カメラがプレイヤーを追いかけまわす

カメラにアタッチする前提で作ってます。

public class CameraControl : MonoBehaviour {

//プレイヤーのオブジェクトを格納する変数
public GameObject PL;

//プレイヤーの位置情報を格納する変数
Vector3 PPos;


void Start () {
//プレイヤーを定義
PL=GameObject.Find ("Player");
//ポジションも定義
PPos = PL.transform.position;
}

void Update () {

//カメラの位置情報を計算して
transform.position += PL.transform.position - PPos;
//位置情報を更新
PPos = PL.transform.position;
}
}

こんな感じでしょうか。

よく質問を受けるのですが。
PL=GameObject.Find ("Player"); を
public GameObject PL=GameObject.Find ("Player"); 
みたいな書き方をしてはダメですか?

まあ、動くでしょうが。

ダメです。変数は一度宣言しましょう。
変数には適用される範囲というものがあります。