1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【unity】カメラをオブジェクトに追従させ、回転しないようにする

Posted at

はじめに

メインカメラをオブジェクトの子オブジェクトに追加すれば、追従自体は簡単に実現できる。
ただし、オブジェクトが回転するとカメラも回転してしまう。これでは画面酔い待ったなしである。

内容

結論としては、カメラオブジェクトは子要素として指定せず、スクリプトにて追従を行う。

カメラにアタッチするスクリプト

public class CameraMoveController : MonoBehaviour
{
    // キャラクターオブジェクト
    public GameObject playerObj;
    // カメラとの距離
    private Vector3 offset;

    void Start()
    {
        playerObj = GameObject.FindGameObjectWithTag(Groval.TAG_PLAYER);
        offset = transform.position - playerObj.transform.position;
    }

    void LateUpdate()
    {
        transform.position = playerObj.transform.position + offset;
    }
}

詳細

初めに、カメラとターゲットとなるオブジェクトの距離をoffsetとして取得する。
LateUpdate()にて、ターゲットに対して常に一定の距離を保ったまま追従する。

これで画面酔いすることはない。

参考文献

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?