FirstPersonCamera Memo
どうも、今回はUnityのカメラワークについての内容を簡単に書いておこうと思う。今回のカメラの使い方は、飛行機のコックピットの視点、普通のFPS視点に使えるものだ。もともとは三人称視点用にソースを書いてたのだけども、一人称視点にハメたら案外しっくり来た(笑)マウスで操作するものだけど、マウス入力がないときはオブジェクトの動きに同期する。
using UnityEngine; using System.Collections; public class Sample : MonoBehaviour { public Transform MovementObject; //cameraにアタッチ public float MouseMovementSpeed; //マウスの感度調整パラメータ public float ObjectDistance=0f; Vector3 pos; void Start() { if (MovementObject == null) //cameraをセットしない場合 { Debug.Log("PLEASE SET THE OBJECT"); Application.Quit(); } } private void Update()//マウス入力と視点の設定とか { var mouseX = Input.GetAxis("MouseX") * Time.deltaTime * MouseMovementSpeed; //MouseXAxis var mouseY = Input.GetAxis("MouseY") * Time.deltaTime * MouseMovementSpeed; //MouseYAxis var lookAt = MovementObject.position + pos; transform.RotateAround(lookAt, Vector3.up, mouseX); transform.RotateAround(lookAt, transform.right, mouseY); transform.LookAt(lookAt); } }
PCスペックが低い人はUpdateをFixedUpdateにしてみるといいかもしれない。