프로그래밍 노트/TIL
내일배움캠프 18일차 TIL
덴바
2024. 5. 13. 21:24
오늘의 키워드
- 상대방의 거리 측정
- 상대방의 방향 측정
오늘은 몸 상태가 좋지 않기에,
원래 예정이었던 아크 탄젠트를 다음으로 미루고
두 키워드에 대해서 가볍게 포스팅해보고자 합니다.
상대방의 거리 측정
A가 본인이고 B가 상대방이라고 가정할 때,
A는 B에게 얼마나 떨어져있는지 구하려면
| (거리를 구하려는 대상 위치) - (플레이어 본인 위치) |
위와 같은 공식이 됩니다.
절댓값 표시를 한 이유는
절댓값을 표시하지 않는다면 해당 값은
거리 + 방향이 합쳐진 값이 되기 때문입니다.
만약 저기서 상대방의 방향을 알고 싶다면 어떻게 해야할까요?
((거리를 구하려는 대상 위치) - (플레이어 본인 위치)).normalized
위와 같은 공식을 사용하면 간단하게 Normal Vector로 인해 방향만을 추출할 수 있습니다.
하지만 상대방의 위치를 구할 때 normalized가 아닌
아크 탄젠트를 사용하는 방식도 있습니다.
Mathf.Atan2(y, x) * Mathf.Rad2Deg;
어떤 방식이 좋을까요?
각 코드별로 다양한 용도로 사용할 수 있지만
기능을 같은 상황에서 정확하지는 않지만
실은 Vector값을 normalized 처리하는 작업은 상당히 무거운 작업이라고 지인에게 들은 적이 있습니다.
만약 이러한 부분에서 최적화를 하고 싶다면,
가벼운 연산 처리인 Mathf.Atan2를 이용해서 방향을 구하는게 좋다고 하더군요.
뭐가 정답인지 아직 확실히는 모르겠지만,
다음 포스팅 때 아크 탄젠트와 같이 포스팅하고자 합니다.
오늘의 회고
오늘은 몸 상태가 좋지 않아서 코딩부터 다양한 면으로 집중이 안되던 하루였습니다.
이번 포스팅 내용도 부실하여 매우 아쉽지만,
다음 포스팅 때 최대한 보충을 할 수 있으면 좋을 것 같습니다.
감사합니다.
