LoginSignup
0
0

More than 3 years have passed since last update.

Unity 3D入門 #11 [マウスによる一人称視点移動]

Last updated at Posted at 2020-07-30

パソコンの一人称視点ゲームらしくマウスで視点変更できるようにします。

参考URL:https://mslgt.hatenablog.com/entry/2017/02/18/020630

上の手法ではクリックしている間しかカメラの移動ができないので、常にマウスの位置を追う実装にします。

private Vector3 lastMousePosition;
private Vector3 newAngle = new Vector3(0, 0, 0);

void Start() {
    newAngle = this.transform.localEulerAngles;
    lastMousePosition = Input.mousePosition;
}

void Update() {
    newAngle.y += (Input.mousePosition.x - lastMousePosition.x) * y_rotate * x_reverce;
    newAngle.x -= (Input.mousePosition.y - lastMousePosition.y) * x_rotate * y_reverce;
    this.gameObject.transform.localEulerAngles = newAngle;
    lastMousePosition = Input.mousePosition;
}

x_rotate, y_rotateはマウスによるカメラ回転の感度を、x_reverce, y_reverceは設定による反転(マウスを上に移動したら下に向くようにする)のための変数。

しかし、この実装ではマウスポインタがはじめから中央に無いと操作に違和感が出るかもしれません。(要検討)

また、一人称視点でカメラを回転させた時、カメラが壁を貫通して向こう側が見えるので、カメラが壁を貫通しないようにします。
カメラはプレイヤーと同じx,z座標に浮かんでいるので、プレイヤーのColliderの当たり判定を大きくしてプレイヤーが一定以上壁に近づかないようにするとカメラも壁にめり込むことはなくなりました。(もし、攻撃された時などの当たり判定は新しくそれ用のColliderを作ればOKのはず)

0
0
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
0
0