유니티에서 특정 게임오브젝트를 기준으로 카메라를 회전시키는 방법
Mouse의 X축 데이터를 가져온다
xRotateMove = Input.GetAxis("Mouse X") * Time.fixedDeltaTime * rotateSpeed;
가져온 X축 데이터에 Time.fixedDeltaTime을 곱해주고 이동속도인 rotateSpeed float 값을 곱해준다
transform.RotateAround(targetPos, Vector3.up, xRotateMove);
Transform안에 RotateAround 함수를 사용해 기준점이 되는 게임오브젝트의 position을 기준으로 xRotateMove만큼 회전한다
transform.LookAt(targetPos);
회전하면서 카메라의 forward 방향(z 방향)은 회전하는 중심을 보게 한다
[전체코드]
public class RotateAround : MonoBehaviour
{
[SerializeField] private Transform targetObj;
[SerializeField] private float rotateSpeed = 500.0f;
private float xRotateMove;
private void FixedUpdate()
{
if (Input.GetMouseButton(0))
{
xRotateMove = Input.GetAxis("Mouse X") * Time.fixedDeltaTime * rotateSpeed;
Vector3 targetPos = targetObj.position;
transform.RotateAround(targetPos, Vector3.up, xRotateMove);
transform.LookAt(targetPos);
}
}
}
'Unity' 카테고리의 다른 글
[Unity] AI Navigation System 사용방법 (8) | 2024.12.11 |
---|---|
[Unity] NavMesh Surface Bake를 했는데 Scene View에서 파란색 표면이 보이지 않는 이슈 (6) | 2024.12.11 |
[Unity] 캔버스 랜더모드(Canvas RenderMode) (0) | 2024.11.22 |
Unity New InputSystem 사용방법 (0) | 2024.11.22 |
Unity Vector3.Lerp 선형보간으로 부드럽게 움직이게 하기 (0) | 2024.11.12 |