前提・実現したいこと
UnityでRotationAroundを使いキャラクターの周辺を回るカメラを実装ました。
そのままだと回転角度に制限がないため、垂直方向に一周しないよう回転角度に制限を付けました。
・・・が、そのまま垂直方向に上げ下げする分にはいいのですが、横にいろいろねじったりするとそのまま一周してしまいます。
どうすれば一周しないカメラを実装できますか?
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class CameraController : MonoBehaviour 6{ 7 public GameObject Player; 8 9 public float MouseSpeed; 10 11 private Vector3 PlayerPos; 12 13 private float xRotate; 14 private float yRotate; 15 16 void Start() 17 { 18 PlayerPos = Player.transform.position; 19 } 20 21 void Update() 22 { 23 transform.position += Player.transform.position - PlayerPos; 24 PlayerPos = Player.transform.position; 25 26 if (Input.GetMouseButton(1)) 27 { 28 float mouseInputX = Input.GetAxis("Mouse X"); //横 29 float mouseInputY = Input.GetAxis("Mouse Y"); //縦 30 31 Debug.Log("x" + transform.rotation.x); 32 Debug.Log("y" + transform.rotation.y); 33 34 transform.RotateAround(PlayerPos, Vector3.up, mouseInputX * Time.deltaTime * MouseSpeed); 35 36 if ((0.48f > transform.rotation.x && mouseInputY > 0.0f) || (transform.rotation.x > -0.5f && mouseInputY < 0.0f)) //縦の回転角度の制限 37 { 38 transform.RotateAround(PlayerPos, transform.right, mouseInputY * Time.deltaTime * MouseSpeed); 39 } 40 } 41 } 42 43}
あなたの回答
tips
プレビュー