以下のようなコードでFPS視点カメラを作成したのですが、視点をずらすと水平線がずれたような感じでカメラが斜めになってしまいます。修正点を教えいていただけないでしょうか?
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { Rigidbody m_Rigidbody; // Start is called before the first frame update void Start() { m_Rigidbody = GetComponent<Rigidbody>(); } // Update is called once per frame void Update() { if (Input.GetKey(KeyCode.RightArrow)) { transform.Rotate(new Vector3(0.0f, 1.0f, 0.0f)); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.Rotate(new Vector3(0.0f, -1.0f, 0.0f)); } if(Input.GetKey(KeyCode.UpArrow)) { transform.Rotate(new Vector3(-0.1f, 0, 0)); } if(Input.GetKey(KeyCode.DownArrow)) { transform.Rotate(new Vector3(1.0f, 0, 0)); } float x = 0.0f; float z = 0.0f; if (Input.GetKey(KeyCode.D)) { x += 1.0f; } if(Input.GetKey(KeyCode.A)) { x -= 1.0f; } if(Input.GetKey(KeyCode.W)) { z += 1.0f; } if (Input.GetKey(KeyCode.S)) { z -= 1.0f; } m_Rigidbody.velocity = z * transform.forward + x * transform.right; } } コード
これはプレイヤーのコードのように思えますが、カメラのコードは別に存在していませんか?
存在していないなら、カメラとプレイヤーのオブジェクト関係を明示してください。「カメラをプレイヤーの子オブジェクトにしている」とか。
また、「視点をずらすと」とは具体的にどのような操作をした時ですか?
カメラのコードは別に存在していません。Mainカメラの名前をplayerに変更して、リジットボディとカプセルコライダーを追加してあります。メインカメラ(player)は特に親子関係をもっていない状況です。
また、視点をずらすの意味は添付コードのKeycode(十字キー)にてカメラの視点を上下左右にそれぞれキーを押していると最初水平線状と並行にカメラがありましたが何回かキーを入力しているうちに水平線から斜めの視点に変更されてしまいます。
回答1件
あなたの回答
tips
プレビュー