1인칭 3인칭 변환
원하는 기능
특정 키보드 버튼을 눌러서 1인칭 3인칭 변환을 하고 싶다.
사례
배틀그라운드에서 v키를 누르면 인칭 변환이 가능하다
마인크래프트에서 F5를 누르면 1인칭, 3인칭 뒷모습 3인칭 앞모습으로 변환이 가능하다
아이디어
1. Input action에서 v키에 대한 이벤트를 만든다
2. v키를 누를 때마다 1인칭, 3인칭 flag 값을 변하게 한다. Mod3으로 하여 0,1,2,값에 따라서 인칭 변환 상태를 둔다.
3. 카메라 시점 변환 시 1인칭과 3인칭에 대한 시야각, 초점 거리 등이 달라져야 한다(1인칭에서는 보통 표준렌즈, 3인칭의 경우에는 광각렌즈를 사용하는 경우가 많음
4. 카메라 회전시 3인칭에서 벽이나 지면 등에 닿았을 때 뚫지 않고 점점 카메라 거리가 플레이어에 가깝게 좁아져야 함
5. 3인칭 카메라에서는 플레이어의 위치를 기준으로 rotation 회전이 처리 되어야 함
6. 3인칭 회전시 wasd와 카메라 종속 관계가 달라져야 함
7. 카메라의 인칭변환시, 카메라의 위치 상태를 변하도록 하거나 3개의 카메라를 두어서 토글된 카메라에 따라서 카메라를 끄고 키도록 처리하는 방법이 있음
8. 플레이어와 카메라에 대한 오프셋 delta기준, 월드 공간에서 wasd로 이동하다
해당 위치 기준으로 뒷부분 기준으로 해서 3인칭 전환되어야 하고 다시 앞부분 기준으로 해서 3인칭 전환되어야 하고 다시 눌렀을 때는 현재 플레이어의 위치에 대해서 앞을 기준으로 offset 처리되어야 함
1,2에 대하여
inputaction으로 v키 토글시, cameraflag 변수를 두어 3으로 나눈 값을 계속 전환 받는다.
7에 대해여
카메라를 3개 만들어서 처리하는 방법도 생각해 봤지만 이때 토글되는 시간 및 순서에 따라서 카화면이 꺼졌다 켜졌다 깜빡일 수 있고 실제 카메라 객체의 개수가 증가하므로 관리하기 번거롭다
따라서 하나의 카메라를 투고 토글될 때마다 transform을 바꿔주도록 처리함
Player의 위치에 대한 transform과 Camera의 transform 정보를 받아서 Camera의 transform 정보를 Player 기준으로 offset 주어 바꿔지도록 처리하도록 한다.
'Unity Study' 카테고리의 다른 글
| 2025-11-24 version control (0) | 2025.11.24 |
|---|---|
| 2025-11-23 3rd perosn camera(2) (0) | 2025.11.24 |
| 2025-11-21 Project prefab (0) | 2025.11.24 |
| 2025-11-20 raycast (0) | 2025.11.24 |
| 2025-11-19 Jumping (0) | 2025.11.24 |