유니티에서 마우스 움직임에 따라 카메라 움직이기
본문 로딩 중...
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
using System.Linq.Expressions;
using UnityEngine;
public class CameraRotation : MonoBehaviour
{
[SerializeField] GameObject cameraRoot;
[SerializeField] private float rotateSpeed;
[SerializeField] private float topClamp;
[SerializeField] private float bottomClamp;
[SerializeField] private bool invertXAxis;
private Vector2 lookInput;
private float targetX;
private float targetY;
void Update()
{
float x = Input.GetAxis("Mouse X");
float y = Input.GetAxis("Mouse Y");
lookInput = new Vector2(x, y);
CameraRotate();
}
private void CameraRotate()
{
// 좌우 회전
targetY += lookInput.x * rotateSpeed;
// 상하 회전
if (invertXAxis)
targetX += lookInput.y * rotateSpeed;
else
targetX -= lookInput.y * rotateSpeed;
// 상하 회전을 제한
targetX = Mathf.Clamp(targetX, bottomClamp, topClamp);
targetY = Mathf.Clamp(targetY, float.MinValue, float.MaxValue);
// 좌우회전 값을 플레이어에게 적용
transform.rotation = Quaternion.Euler(0f, targetY, 0f);
// 상하회전 값을 카메라 루트에 적용
cameraRoot.transform.localRotation = Quaternion.Euler(targetX, 0, 0);
}
}
3D 환경에서 마우스 움직임에 따라서 카메라를 회전시키는 코드.
좌우 회전은 플레이어를 카메라에 따라 회전시키고, 상하 회전은 카메라 축만 조정한다.

Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

우리들의 게임 발매 이야기

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.



안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.