void OnTriggerEnter(Collider other)
{
//충돌한 상대방 게임 오브젝트가 Player 태그를 가진 경우
//태그 충돌감지의 경우 other.tag보다 CompareTag()가 더 자원을 적게 먹는다
if (CompareTag("Player"))
{
//상대방 게임 오브젝트에서 PlayerCtrl 컴포넌트 가져오기
PlayerCtrl playerCtrl = other.GetComponent<PlayerCtrl>();
//상대방으로 부터 PlayerCtrl 컴포넌트를 가져오는데 성공했다면
if (playerCtrl != null)
{
//상대방 PlayerCtrl 컴포넌트의 Die()메서드 실행
playerCtrl.Die();
}
}
}
ComparTag("Player")로 tag 감지를 하면
other.tag == "Player"보다 자원을 적게먹는다
최대 27%까지 자원을 덜 먹는다는 분도 계심
이유는 other.tag는 Player의 이름 값을 복제해오는게 문제
대량의 오브젝트가 other.tag로 이름 값을 받아오게 되면 자원을 많이 잡아먹고 처리가 지연됨
C#의 경우 가비지 컬렉터가 자기 마음대로 메모리를 관리하기 때문에 언제 복사된 값이 지워질지 모름 ㄷㄷㄷ
그리고 간혹 ComparTag가 안 먹히는 경우가 있는데 이럴때는 속편하게
other.tag == "name" 테그를 이용하자