以下のコードを子オブジェにカメラをもつプレイヤーオブジェクトにアタッチしたところ、
rotationの数値はカメラとプレイヤーで同じなのに前(青矢印)の向きが同期しません。
どこを直したらうまくカメラの横回転とプレイヤーのy軸回転をうまく同期させられますか?
また、これとは別にtransform.forwardを使った青矢印の方向に動かせるスクリプトをアタッチしています。
C#
1{ 2 private float x_sensitivity; 3 private float y_sensitivity; 4 private GameObject Camera; 5 public Vector3 newRotation; 6 public Vector3 newRotation2; 7 public float cameraSpeed = 3f; 8 9 void Start() 10 { 11 Camera = GameObject.Find("MainCamera"); 12 13 x_sensitivity = cameraSpeed; 14 15 y_sensitivity = cameraSpeed; 16 17 } 18 19 void Update() 20 { 21 float x_mouse = Input.GetAxis("Mouse X"); 22 float y_mouse = Input.GetAxis("Mouse Y"); 23 24 //カメラの横向きの動きを操作 25 newRotation = Camera.transform.localEulerAngles; 26 newRotation.y += x_mouse * x_sensitivity; 27 Camera.transform.localEulerAngles = newRotation; 28 29 //カメラの縦向きの動きを操作 30 newRotation = Camera.transform.localEulerAngles; 31 newRotation.x -= y_mouse * y_sensitivity; 32 Camera.transform.localEulerAngles = newRotation; 33 34 //プレイヤー自身の横向きの回転を操作したい(問題点?) 35 newRotation2 = transform.localEulerAngles; 36 newRotation2.y += x_mouse * x_sensitivity; 37 transform.localEulerAngles = newRotation2; 38 } 39}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。