###前提・実現したいこと
FPSにおいて、[←][→]キーで左右を回転して見渡し、[↑][↓]キーで上下を回転して見渡すという処理を
考えています。
しかし実際、コードを組んでみたものの、実行してみると、アングルを下向きにしてそのまま右向きに変えて、次はそのままアングルを上に...という具合に、縦横のアングルを変えていくと、視点が傾き、水平線が斜めに見える視界になってしまいます。
斜めに傾かないで、上下左右のアングル変更ができる処理の方法を教えていただきたいです。
また、これの解決方法として、これ以上オブジェクトを追加しない方法(コードのみの処理)で教えていただけたらと思います。
###試したこと
ゲームの視界をわかりやすくするため、シーン上にPlaneで地面を作成し、キューブを1つ作成して前方に浮かせる。
空のゲームオブジェクトにアタッチしているスクリプトで、下記のコードを記述。
C#
1using UnityEngine; 2using System.Collections; 3 4public class CubeScript : MonoBehaviour { 5 GameObject camera; 6 7 void Start(){ 8 camera = GameObject.Find("Main Camera"); 9 } 10 11 void FixedUpdate(){ 12 float rspeed = 5.0f; 13 14 // Read input 15 float horizontal = Input.GetAxis("Horizontal"); 16 float vertical = Input.GetAxis("Vertical"); 17 18 camera.transform.Rotate (vertical * rspeed * (-1), 0, 0, Space.World); 19 camera.transform.Rotate (0, horizontal * rspeed, 0, Space.World); 20 } 21}
※Rotate()の引数に、Space.Selfを指定してもダメでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 07:57
2016/09/11 08:44
2016/09/11 11:31