본문 바로가기
반응형

카메라6

유니티 - 마우스 스크롤로 카메라 줌 인 / 아웃 (Camera Zoom in / out with a Mouse Scroll) Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) - 멀티 터치 드래그를 이용하여 카메라 줌 인 / 아웃 카메라를 Rotate하고 Zoom in / out도 할 수 있도록 해보자. (시네머신 FreeLook Camera Zoom in / out) 카메라를 줌 인/아웃 하는 방법은 크게 두 가지가 있다. - fieldOfView - 카메라가 향한 방향으로 앞/뒤 이동 fieldOfView Field Of View는 카메라의 시야각이다. Input.GetAxis("Mouse ScrollWheel")을 이용해 Camera의 fieildOfView를 변경하면 된다. public float scrollSpeed = 2000.0f; void Update() { i.. 2022. 5. 14.
유니티 - 카메라와 오브젝트의 각도 구하기 Unity 전체 링크 심즈 게임을 보면, 집 안의 내부가 보이지만, 안으로 들어가면 벽이 다시 생긴다. 즉, 카메라와 오브젝트의 특정한 각도가 될 경우, 오브젝트가 안보이는 경우가 있다. 카메라와 오브젝트의 각도를 구해서 위의 경우를 구현해보자. 먼저 OnDrawGizmos를 이용해서 오브젝트의 앞을 씬에 표시해두자. public class Front : MonoBehaviour { private void OnDrawGizmos() { Gizmos.color = Color.green; Gizmos.DrawRay(this.transform.position, this.transform.localRotation * Vector3.forward * 2.0f); } } 위의 스크립트를 오브젝트에 추가한다. 그러면.. 2022. 4. 30.
드래그로 카메라 회전 및 이동하기 (Camera Rotate and Move with Drag) Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) 마우스 드래그를 이용해 카메라를 회전하고 이동하는 스크립트를 합쳐보자. Alt키를 누르면 이동을 하고, 누르지 않은 경우는 회전을 한다. 위의 링크를 참고하면 아래와 같이 스크립트를 만들 수 있다. ( + 스크롤 이동 포함) (stage → lookAtMe로 이름 변경) using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateAround : MonoBehaviour { public GameObject lookAtMe; public float rotateSpeed = 500.0f; pub.. 2022. 4. 27.
유니티 - 게임 오브젝트 기준으로 카메라 움직이기 Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) 아래와 같이 물체(Stage)를 기준으로 카메라를 회전시켜보자. 먼저 GetAxis를 이용해 움직일 범위를 정한다. 카메라는 마우스가 X 방향으로 움직일 때, 유니티 좌표계도 X 방향으로 움직이므로, x = Mouse X다. xRotateMove = Input.GetAxis("Mouse X") * Time.deltaTime * rotateSpeed; 위와 같은 구현은 RotateAround(기준점, 축, 속도)로 아주 간단하게 구현할 수 있다. Stage의 Y축을 기준 축으로 움직인다. (Vector3.up = 0, 1, 0) 그리고 카메라가 움직인 후, 기준이 되는 target을 LootAt으로 바라보.. 2022. 3. 7.
유니티 - 1인칭 시점 조작 first person view controller Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) 카메라 회전을 하였으므로, 이제 카메라를 Player 아래로 둔다. 여기서 front는 player가 제대로 회전하는지 확인하기 위해 만들어둔 좌표다. 빈 오브젝트를 설정하여 플레이어보다 약간 앞 (Z=10)에 맞춰두자. front를 스크립트에 설정해두고 DrawLine을 설정한다. Debug.DrawLine(transform.position, objectFrontVector.position, Color.red); Player 앞에 line이 생겨서 방향을 구분할 수 있게 되었다. Camera에 회전을 하는 스크립트는 해제한다. 카메라는 Player의 자식이므로 Player가 회전하면 같이 회전하기 때문.. 2022. 3. 6.
유니티 - 마우스로 카메라 회전하기 (오일러 각) Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) 현재 보고 있는 카메라의 위치를 회전시켜보자. 즉 아래와 같이 Rotation Y (좌, 우), Rotation X (위, 아래)를 변경해야 한다. GetAxis는 함수의 세로 또는 가로에 속하는 입력을 -1에서 1의 범위로 취득한다. Mouse가 위로 올라갈 때 유니티 좌표계에서는 X가 바뀌기 때문에 xRotateMove에 Mouse Y가 들어간다. xRotateMove = -Input.GetAxis("Mouse Y") * Time.deltaTime * rotateSpeed; yRotateMove = Input.GetAxis("Mouse X") * Time.deltaTime * rotateSpeed; .. 2022. 3. 5.
반응형