この記事は、【完走したい】楽しくいろいろやる Advent Calendar 2023の21日目です。
復習を含みます。
キャラを操作する(復習)
キーボードのキーでキャラが動くようにします。
基本的に、矢印のキーで移動できるようにします。
キーボード入力は、
Input.GetKey(KeyCode.キーの名前);
でできるようです。
↓書いたコードがこちら
if (Input.GetKey(KeyCode.LeftArrow))
{
this.transform.Translate(0f, 0.0f, -0.6f);
}
if (Input.GetKey(KeyCode.RightArrow))
{
this.transform.Translate(0f, 0.0f, 0.6f);
}
if (Input.GetKey(KeyCode.UpArrow))
{
this.transform.Translate(-0.6f, 0.0f, 0f);
}
if (Input.GetKey(KeyCode.DownArrow))
{
this.transform.Translate(0.6f, 0.0f, 0f);
}
これで、動かしたいものがいい感じに動きました。
カメラを追従させる
前回の記事に乗せた動画ですでに実装してしまいました。
Unityではカメラを簡単に追従させることができます。
やり方はシンプルで、カメラを追従させたいオブジェクトの子オブジェクトにするだけです。
が、このやり方だとカメラの向きが固定されます。
ということで、上のコード(移動)に、カメラの向き変更するようにします。
カメラの向きを変える
カメラの向きをキャラの向きにします。
public GameObject Cam;
private Vector3 latestPos;
void Update()
{
Vector3 diff = transform.position - latestPos;
latestPos = transform.position;
Cam.GetComponent<Transform>();
if (diff.magnitude > 0.01f)
{
Cam.transform.rotation = Quaternion.LookRotation(diff);
}
}
magnitudeを使うと、ベクトルの長さを知ることができます。
rotationを設定するときに、vector3を使って指定することはできません。
これで、カメラが動いた方向に向いてくれました。
参考