Unity3D 는 카메라 렌즈 의 이동 을 실현 하고 각 도 를 제한 합 니 다.
카메라 렌즈 는 마 우 스 를 따라 이동 하고 상하 좌우 의 이동 각 도 를 제한한다.
public class ViewFromCream : MonoBehaviour
{
public int speed=5;
public Vector3 vect;
private float xcream;
private float ycream;
public void Update()
{
CreamView();
}
private void CreamView()
{
float x = Input.GetAxis("Mouse X");
float y = Input.GetAxis("Mouse Y");
if (x!=0||y!=0)
{
LimitAngle(60);
LimitAngleUandD(60);
this.transform.Rotate(-y * speed, 0, 0);
this.transform.Rotate(0, x * speed, 0, Space.World);
}
}
/// <summary>
///
/// </summary>
/// <param name="angle"> </param>
private void LimitAngle(float angle)
{
vect = this.transform.eulerAngles;
// x (0~360)
xcream = IsPosNum(vect.x);
if (xcream > angle)
this.transform.rotation = Quaternion.Euler(angle,vect.y,0);
else if (xcream < -angle)
this.transform.rotation = Quaternion.Euler(-angle, vect.y, 0);
}
/// <summary>
///
/// </summary>
/// <param name="angle"></param>
private void LimitAngleUandD(float angle)
{
vect = this.transform.eulerAngles;
// y (0~360)
ycream = IsPosNum(vect.y);
if (ycream > angle)
this.transform.rotation = Quaternion.Euler(vect.x, angle, 0);
else if (ycream < -angle)
this.transform.rotation = Quaternion.Euler(vect.x, -angle, 0);
}
/// <summary>
/// -180~180
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
private float IsPosNum(float x)
{
x -= 180;
if (x < 0)
return x + 180;
else return x - 180;
}
}
IsPosNum 방법 에 대한 설명획득 한 오 라 각 을-180°-180°사이 로 전환 하려 는 이 유 는 eulerAngle 에서 x 축 과 y 축의 수 치 는 0-360 에 불과 하고 마이너스 가 없 기 때문이다.그러면 우리 의 각 도 를 복잡 하 게 판단 할 것 이다.예 를 들 어 좌우 각 도 를-60-60 사이 로 제한 하면 우 리 는 각도 가 300 도 를 초과 하거나 60 도 를 초과 하 는 지 판단 해 야 한다.분명히 300 도 를 초과 하 는 각 도 는 60 도 를 초과 해 야 한다.그러면 별도의 조건 을 붙 여 판단 해 야 한다.따라서 얻 은 값 을 전환 하 는 것 이 편리 합 니 다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 공부 일지~블렌드 셰이프 조작 방법 그 ①게임을 만들고 싶다 ~라고 생각하고 마지막 날부터 Unity를 만지기 시작했습니다 HITOMI2236입니다. 이번 블렌드 셰이프에 대해 조사했으므로 여기에 기록하려고 합니다. 개인용 메모입니다만, 만약 같은 곳에서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.