Record/TIL
[Unity] 마우스 포인터 시점에 따라 화면 움직이게 하기
석영
2024. 7. 16. 22:45
반응형
transform.eulerAngles
Unity에서 게임 오브젝트의 회전을 표현하는 속성 중 하나로, 오브젝트의 회전을 오일러 각도로 나타낸다. 오일러 각도는 회전하는 각도를 x, y, z 세 축을 기준으로 표현하는 방식이다.
특징
오일러 각도: transform.eulerAngles는 Vector3로 표현되며, x, y, z 값은 각각 오브젝트의 피치(pitch), 요(yaw), 롤(roll)을 의미한다.
- x: 피치(pitch), 오브젝트가 x축을 기준으로 회전한 각도 (위아래로 회전)
- y: 요(yaw), 오브젝트가 y축을 기준으로 회전한 각도 (좌우로 회전)
- z: 롤(roll), 오브젝트가 z축을 기준으로 회전한 각도 (좌우로 기울임)
코드
어제 썼던 코드중에 시점 부분만 따온거... 마우스 움직임으로 카메라 회전시키기
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerMovement : MonoBehaviour
{
[Header("Look")]
[SerializeField] private Transform playerCamera;
private float minXLook = -50.0f;
private float maxXLook = 70.0f;
private float camCurXRot;
private float lookSensitivity = 0.2f;
private Vector2 mouseDelta;
private void LateUpdate()
{
CameraLook();
}
public void OnLookInput(InputAction.CallbackContext context)
{
// 마우스 이동량
mouseDelta = context.ReadValue<Vector2>();
}
void CameraLook()
{
// 상하 회전
camCurXRot += mouseDelta.y * lookSensitivity;
camCurXRot = Mathf.Clamp(camCurXRot, minXLook, maxXLook);
playerCamera.localEulerAngles = new Vector3(-camCurXRot, 0, 0);
// 좌우 회전
transform.eulerAngles += new Vector3(0, mouseDelta.x * lookSensitivity, 0);
}
}
참고문서
>> 유니티 공식문서
반응형