예를들어, 플레이어가 문(Door)이랑 거리가 1 이하일 때, 키를 눌러 문을 여는 기능이 있다치면
1. Door 스크립트 내에 Update문에서 Player와 Distance 함수 or sqrMagnitude써서 거리 계산하는 법?
2. OnTrigger로 내가 설정한 콜라이더 값 안에 들어왔을 때 처리하는 법?
둘 중 뭐가 비용이 더 큰거야?
OnTrigger도 마찬가지로 Update 내부적으로 돌아가서 비용 많이 든다는걸 본거같은데 맞는말이야?
물리엔진에서 너 대신 콜라이더 끼리 겹치는지 체크를 해주는거임. 당연히 그냥 거리체킹이 아닌 콜라이더 간의 체킹이니 비싸지. 하지만 물리엔진 최적화 중에 BroadPhase충돌체크에서 두 콜라이더가 멀리있다면 거리체킹조차 안함. 때문에 - 문 한개라고 치면 OnTrigger보다 Update에서 간단한 거리체킹이 비용이 싸다 - 문이 100개가 사방에 있다면 OnTrigger가 훨씬 비용이 쌈. Update는 매프레임 100개의 문을 체크하겠지만, OnTrigger는 BroadPhase에서 대부분 걸러지기 때문
좋은 정보 고마워!
아마 문은 해봤자 10~30개 일거같긴한데 플레이어가 최대 3명까지 될거같아서 이 3명을 전부 매번 Update에서 계산하는것보다 이런 경우는 그냥 OnTrigger 쓰는게 낫겠지?
문30개 X 플레이어3명이면 = 90번 업데이트당 90번이면, 그렇게 많은건 아니네. 좀 부하가 심하다싶으면 Trigger로 바꿔.