カメラを主人公のまわりをマウスで移動させるスクリプトを作ったのですがY軸に激しく動かすと反転します。
反転させないようにしたいです!
このスクリプトは画像に乗っているCameraControllerに張り付けたスクリプトです。
public class CameraController : MonoBehaviour {
public GameObject player; public GameObject mainCamera; public float rotate_speed;
private const int ROTATE_BUTTON = 1;
private const float ANGLE_LIMIT_UP = 60f;
private const float ANGLE_LIMIT_DOWN = -60f;
void Start() { mainCamera = Camera.main.gameObject; player = GameObject.FindGameObjectWithTag("Player"); } void Update() { transform.position = player.transform.position; if (Input.GetMouseButton(ROTATE_BUTTON)) { rotateCmaeraAngle(); } float angle_x = 180f <= transform.eulerAngles.x ? transform.eulerAngles.x - 360 : transform.eulerAngles.x; transform.eulerAngles = new Vector3( Mathf.Clamp(angle_x, ANGLE_LIMIT_DOWN, ANGLE_LIMIT_UP), transform.eulerAngles.y, transform.eulerAngles.z ); }
private void rotateCmaeraAngle() {
Vector3 angle = new Vector3(
Input.GetAxis("Mouse X") * rotate_speed,
Input.GetAxis("Mouse Y") * rotate_speed,
0
);
transform.eulerAngles += new Vector3(angle.y, angle.x);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/24 09:53
退会済みユーザー
2020/03/27 14:46 編集
2019/12/24 21:01