私のコードは機能していません、私はカメラをクランプしようとしていますが、動作していません。どのようにカメラをクランプするには?Unity3Dでカメラをクランプする方法
using UnityEngine;
using System.Collections;
public class MoveCamera : MonoBehaviour
{
public float sensitivity = 4.0f;
private Vector3 mouseOrigin;
private bool isRotating;
private float speed = 2.0f;
private float minX = -45.0f;
private float maxX = 45.0f;
private float minY = -10.0f;
private float maxY = 10.0f;
float rotationY = 0.0f;
float rotationX = 0.0f;
void Update()
{
if (Input.GetMouseButtonDown (0)) {
mouseOrigin = Input.mousePosition;
isRotating = true;
}
if (!Input.GetMouseButton (0))
isRotating = false;
if (isRotating) {
Vector3 pos = Camera.main.ScreenToViewportPoint (Input.mousePosition - mouseOrigin);
transform.RotateAround (transform.position, transform.right, -pos.y * sensitivity);
transform.RotateAround (transform.position, Vector3.up, pos.x * sensitivity);
rotationY = Mathf.Clamp (rotationY, minY, maxY);
rotationX = Mathf.Clamp (rotationX, minX, maxX);
transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);
}
}
}
私は外部ツールを使用したくありません。ところで、私はコードを修正しました。 "X"ではなく "Y"です。迅速な返信をありがとう。 :) –
私が実際に参照する外部ツールは外部です。まったくUnityには何の影響もありません。また、私が投稿したフィックスでは不十分な場合は、コードでDebug.Logを使用して、実際に何をしたいかを確認してください。もう一度、Mathf.Clampは意図したとおりに動作しています。... –