https://gycblog.tistory.com/23
[Unity] 오버워치 따라잡기! 트레이서 편(2)
1편에서 기본 움직임과 점프를 구현했고, 이제는 트레이서의 대표 스킬 점멸을 구현하려 한다. 트레이서의 점멸은 Shift키 또는 우클릭시 가던 방향으로 일정 거리 순간이동한다. WASD키 중 아무것
gycblog.tistory.com
2편에서는 트레이서의 점멸을 구현하였다. 그러나 순간이동 개념으로 구현했기에 벽을 통과하여 점멸하는 문제가 발생. 오늘은 이걸 보완해보려한다.
A. RayCast로 점멸 직전에 앞의 장애물 체크
점멸 직전에 점멸 방향으로 Ray를 쏴서 벽과 충돌하는지 체크한다.
CheckBlinkCollision 함수를 이용하여 2편에서 구현 LShiftSkill 함수를 다음과 같이 수정했다.
즉, 점멸 예상 경로에 벽이 있다면 해당 벽까지만 점멸하도록 하였다. 경로에 벽이 없다면 원래대로 BlinkDistance 거리의 점멸을 하게 된다.
B. 결과와 문제점
다음 영상을 보면 벽으로 점멸할 때는 벽까지만 점멸이 된다는 것을 볼 수 있다.
여기서 문제점이 보이나요? 벽에 충돌할 때 가끔 벽을 뚫어서 벽 건너편이 보인다.
C. 벽뚫 문제점 해결
이 문제를 해결하기 위해서는 hit.point에서 조금 떨어진 곳으로 점멸하도록 하면 된다.
점멸 예상 위치를 계산한 것 처럼 hit.point에서 0.2f 떨어진 곳에 점멸하도록 수정했다.
D. 최종 결과
최종적인 점멸 구현 영상은 다음과 같다.
다음 편에는 드디어 걱정되는 시간역행을 구현해보려 한다! 그럼 다음편에.. 즐개~ (즐거운 개발이라는 뜻..)
'Unity > 오버워치 따라잡기' 카테고리의 다른 글
[Unity] 플레이어 체력(HP바) 구현하기! (0) | 2023.03.20 |
---|---|
[Unity] 오버워치 따라잡기! 트레이서 편(5) - Recall 시간역행 (0) | 2023.03.17 |
[Unity] 오버워치 따라잡기! 트레이서 편(4) - Recall 시간역행 (0) | 2023.03.17 |
[Unity] 오버워치 따라잡기! 트레이서 편(2) - Blink 점멸 (1) | 2023.03.15 |
[Unity] 오버워치 따라잡기! 트레이서 편(1) - 움직임 (0) | 2023.03.15 |