実現したいこと
FPSやTPSなどのPCゲームをする際にマウスで動かせるカメラを再現したいのです。
それも粗方出来たのですが、上や下に向きすぎないカメラの角度制限のソースが中々スマートに組めません。
特に角度制限をする条件分岐の条件が中々摩訶不思議なことになってしまい、恐らく今後見直しても何を書いているか全く分からないことでしょう。
そこで皆様にはこのソースと同じ挙動をする、しかしながら更にスマートで分かりやすいソースを書く知恵をお借りしたいを思っております。
そもそもUnityの回転の仕様自体が複雑怪奇なこともあいまってか私には一切のアイデアが浮かびませんので、よろしくお願い致します。
現在のソース
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class cameraler : MonoBehaviour { 6 GameObject ziki,oya; 7 public int speed; 8 float shoki,ima,a; 9 // Use this for initialization 10 void Start () { 11 shoki = transform.eulerAngles.x; 12 ziki = gameObject; 13 oya = gameObject.transform.parent.gameObject; 14 } 15 16 // Update is called once per frame 17 void Update () { 18 ima = transform.eulerAngles.x; 19 a =ima - shoki; 20 oya.transform.Rotate (0, Input.GetAxis ("Mouse X") * speed * Time.deltaTime, 0); 21 Debug.Log (a); 22 if (Input.GetAxis ("Mouse Y") < 0) { 23 if ((a > 0 && a < 15)||a>300||(a>-5&&a<5)) 24 ziki.transform.Rotate (-Input.GetAxis ("Mouse Y") * speed * Time.deltaTime, 0, 0); 25 } 26 else{ 27 if (a > 310||(a>-5&&a<5)||(a>0&&a<50)) 28 ziki.transform.Rotate (-Input.GetAxis ("Mouse Y") * speed * Time.deltaTime, 0, 0); 29 } 30 } 31}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。