1
Unity3Dにはメインカメラがあります。これは、マウスの入力に応じて回転したいので、どこに見たいかによってマウスを動かす最初の人のビデオゲームとして機能します。カメラのUnity3DでカメラがZ軸を中心に回転しているのはなぜですか?
開始値は、(ユニティでInspectorタブにタブを変換):
- 位置:X = -1、Y = 1、Z = -11。
- 回転:X = 0、Y = 0、Z = 0
- スケール:X = 1、Y = 1、Z = 1
私用のスクリプトコンポーネントを追加メインカメラ。そして、それは次のクラスです:
using UnityEngine;
using System.Collections;
public class CameraMove : MonoBehaviour {
float deltaRotation = 50f;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if(Input.GetAxis("Mouse X") < 0){
//Code for action on mouse moving left
transform.Rotate (new Vector3 (0f, -deltaRotation, 0f) * Time.deltaTime);
}
else if(Input.GetAxis("Mouse X") > 0){
//Code for action on mouse moving right
transform.Rotate (new Vector3 (0f, deltaRotation, 0f) * Time.deltaTime);
}
if(Input.GetAxis("Mouse Y") < 0){
//Code for action on mouse moving left
transform.Rotate (new Vector3 (deltaRotation, 0f, 0f) * Time.deltaTime);
}
else if(Input.GetAxis("Mouse Y") > 0){
//Code for action on mouse moving right
transform.Rotate (new Vector3 (-deltaRotation, 0f, 0f) * Time.deltaTime);
}
}
}
しかし、私がシーンをプレイすると、カメラは回転しません。 ローテーションの値は、x軸、y軸、さらにはz軸で変化します。
私は間違っていますか?
どのようにマウスを動かすかによってカメラを動かしたいと思います。あなたがマウスでカメラを動かすことができる最初の人のビデオゲーム(CS、ポータルなど)を考えてみてください。では、 'localEulerAngles'と' eulerAngles'の違いは何ですか? –
私はあなたがしていることを知っています。これが正しい解決策です。 'localEulerAngles'と' eulerAngles'の違いについては 'localEulerAngles'は位置軸で回転し、' eulerAngles'はワールド軸で回転します。ローカル軸は、スクリプトが回転しているGameObjectの軸です。あなたがまだそれを理解していない場合は、あなたはグーグルローカル対ユニティのグローバル軸することができます。 'localEulerAngles'はうまくいくはずです。 – Programmer
完全性を気にしているなら、 'transform.localEulerAngles = new Vector3(-yRotCounter、xRotCounter、0);の前に' xRotCounter = xRotation%360;問題がある場合は教えてください。 – Programmer