[Unity] GetMask vs NameToLayer

jh Seo·2024년 8월 16일
0

유니티

목록 보기
44/50

개요

physics.Ray 를 통해 layer충돌 ray를 발사하는데,
LayerMask의 GetMask와 NameToLayer함수가 반환값이 다르길래 검색하고 정리하는 글이다.

GetMask

public static int GetMask(params string[] layerNames)

GetMask함수는 말그대로 인자값으로 넘어온 레이어 이름에 해당하는 mask값을 반환한다.
해당 mask란 레이어 번호만큼 비트쉬프트 결과이다.

따라서 layer 8번 인덱스에 Wall을 저장했다면,
getmask("Wall")의 결과는 1<<8을 반환한다.

NameToLayer

public static int NameToLayer(string layerName);

Given a layer name, returns the layer index as defined by either a Builtin or a User Layer in the Tags and Layers manager.

해당 레이어의 인덱스를 반환한다.
따라서 NameToLayer("Wall")은 1<<8이 아닌 8을 반환하므로

1<<NameToLayer("Wall") 이렇게 사용해야한다.

profile
코딩 창고!

0개의 댓글