- UNITY DOTS - 거리 계산하기2022년 11월 25일
- 개양반
- 작성자
- 2022.11.25.:09
Unity DOTS 에서 수학 패키지로 using Unity.Mathematics를 사용해야 한다.
using Unity.Mathematics에서 제공하는 오브젝트 간의 거리를 계산하는 함수에는 math.distance와 math.distancesq 2개가 존재한다.
1. math.distance
정확한 거리를 계산할 때 사용한다. 두 점간의 제곱 거리에 루트를 한 값이라 컴퓨터 성능에 악영향을 끼친다.
컴퓨터는 나누셈 연산에 잼병이다.
math.distance(AEntity의 위치, BEntity의 위치);
2. math.distancesq
정확한 거리를 측정할 때는 좋지 않지만 루트 연산을 하지 않으므로 성능에 좋다.
위 Distance의 거리 계산에서 루트 계산을 하지 않은 두 점 사이의 제곱 거리를 반환한다.
math.distancesq(AEntity의 위치, BEntity의 위치)
2-1 math.distancesq 예제
math.distancesq 는 제곱 거리를 반환하므로 비교 대상의 길이도 비교를 할 때는 벡터에 제곱을 해야 한다.
벡터의 거리를 제곱하는 함수로는 math.lengthsq 가 있다.
public float VisionMaxDistance = 5.0f; public partial class SampleSystem : SystemBase { protected override void OnUpdate() { .. 코드 생략.. var distancesq = math.distancesq(EntityAspect.transform.position, PlayerAspect.transform.position); if(math.lengthsq(VisionMaxDistance) < distancesq) { // distancesq 의 값이 거리의 제곱을 반환한다. // 비교할 거리 VisionMaxDistance 도 제곱한 값이 되어야 한다. // math.lengthsq 는 전달받은 백터의 길이를 제곱한 값을 반환한다. } } }
'Unity DOTS > TIP' 카테고리의 다른 글
UNITY DOTS - JobHandle.CombineDependencies (0) 2022.11.29 UNITY DOTS - Unity.Mathematics.Random 랜덤 사용하기 (0) 2022.11.28 Unity DOTS(ECS) 에서 Build 하는 방법 (1) 2022.08.09 Unity DOTS(ECS)에선 꼭 Enter Play Mode Options를 활성화하자 (0) 2022.08.09 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)