1편에서 기본 움직임과 점프를 구현했고, 이제는 트레이서의 대표 스킬 점멸을 구현하려 한다.
트레이서의 점멸은 Shift키 또는 우클릭시 가던 방향으로 일정 거리 순간이동한다. WASD키 중 아무것도 누르지 않은 상태에서 사용하면 앞으로 점멸한다. 구현해보자!
A. 트레이서 점멸 구현하기
ChatGPT를 통해 특정 위치에서 가고있는 방향으로 일정 거리 갔을 때의 나의 위치를 계산하였다.
물론 직접 계산할 수 있겠지만.. 세상이 너무 좋아졌다.
어쨌든, 가고있는 방향으로의 벡터를 normalize한 것을 이용하여 점멸 후 플레이어가 있을 위치를 계산한다.
다음과 같이 갈 곳을 계산하였고, coroutine을 사용해서 순간이동 즉 점멸하도록 했다.
Update 함수에서 left shift가 눌리면 LShiftSkill() 함수가 호출된다.
LShiftSkill함수는 ChatGPT를 참고하여 점멸 후 위치인 blinkedPosition을 구한다.
Blink() 코루틴 함수는 플레이어의 포지션을 blinkedPosition으로 바꾸어 순간이동 시킨다. 순간이동 앞뒤로 character controller를 비활성화하지 않았을 때 순간이동이 잘 안되는 현상이 발생했다. 이러한 해결책은 레퍼런스 1번 영상을 참고했다.
B. 트레이서 점멸 구현 영상
영상 마지막 부분에서 순간이동을 하면서 벽을 뚫는 것이 가능해지는 것을 볼 수 있다.
실제 게임에서는 트레이서가 벽을 향해 점멸을 사용하면 벽에 부딪혀서 벽까지만 점멸한다.
이러한 점멸에 대한 디테일은 다음편에 다룰 예정이다.
그럼 다음 편에~ 즐개~ (즐거운 개발이란 뜻..)
Reference
1. https://www.youtube.com/watch?v=xmhm5jGwonc
'Unity > 오버워치 따라잡기' 카테고리의 다른 글
[Unity] 플레이어 체력(HP바) 구현하기! (0) | 2023.03.20 |
---|---|
[Unity] 오버워치 따라잡기! 트레이서 편(5) - Recall 시간역행 (0) | 2023.03.17 |
[Unity] 오버워치 따라잡기! 트레이서 편(4) - Recall 시간역행 (0) | 2023.03.17 |
[Unity] 오버워치 따라잡기! 트레이서 편(3) - Blink 점멸 (0) | 2023.03.16 |
[Unity] 오버워치 따라잡기! 트레이서 편(1) - 움직임 (0) | 2023.03.15 |