###やっていること
マウスでカメラを回転させています。Xが回転できる範囲を-45から80までにしました。
###起きた問題
Xのrotationが0になるとXが80まで瞬間移動していまいます。
C#
1public float rotatespeed = 1; 2 3 public GameObject target; 4 public Vector3 offset; 5 6 public float minangle = -40f; 7 public float maxangle = 80f; 8 9 //追従 10 void Start() 11 { 12 updatePosition(); 13 } 14 15 void LateUpdate() 16 { 17 updatePosition(); 18 } 19 20 void updatePosition() 21 { 22 Vector3 pos = target.transform.localPosition; 23 transform.localPosition = pos + offset; 24 } 25 26 void Update() 27 { 28 //マウス操作 29 float hor = rotatespeed * Input.GetAxis("Mouse X"); 30 float ver = rotatespeed * Input.GetAxis("Mouse Y"); 31 transform.Rotate(-ver, hor, 0); 32 33 transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, transform.localEulerAngles.y, 0f); 34 35 //X角度制限 <====xが0になるとxが80に瞬間移動してしまう 36 if (transform.eulerAngles.x > maxangle) 37 { 38 transform.eulerAngles = new Vector3(maxangle, transform.localEulerAngles.y, 0); 39 } 40 41 if (transform.eulerAngles.x < minangle) 42 { 43 transform.eulerAngles = new Vector3(minangle, transform.localEulerAngles.y, 0); 44 } 45 46 //Mathf <====xが0になるとxが80に瞬間移動してしまう 47 //Mathf.Clamp(transform.eulerAngles.x, minangle, maxangle); 48 }
X角度制限はtransform.eulerAngles.xがmaxangle(80)を超えたらmaxangleまで戻す(minangleも同じ)という感じです
mathfもやってみましたが直りませんでした
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/05 02:26