비트 연산자, 레이어 마스크
1은 왼쪽으로 1만큼 보내라는 의미. 빈칸은 0으로 채움
레이어마스크는 이런 필터를 생각하면 편하다
ex. 화살이 나가는데 화살이 캐릭터가 쏜 거면 캐릭터가 맞으면 안돼!
몬스터가 쐈는데 앞에있는 다른 몬스터 맞으면 안돼!
이런걸 할 때 어디는 충돌하고 안하고 정하는 레이어마스크를 한다.
레이어는 기본적으로 32개의 레이어까지 가능
>> 레이어 하나하나가 비트를 가지고 있는데, int가 32비트
이걸 빠르게 체크하도록 구현?
ex. 레이어가 6번인지 확인하고 싶을때
1을 왼쪽으로 6번 보내면 검사할 수 있다..?
비트연산자. 레이어마스크
유니티에서 각 게임 오브젝트는 특정 레이어에 속할 수 있으며, 이는 주로 오브젝트 간의 상호작용을 관리하기 위해 사용
레이어는 비트 필드로 표현되어 각 비트가 다른 레이어를 나타내게 된다
비트연산자는 레이어의 비트 필드를 조작하기 위해 사용된다
여기는 주로 다음과 같은 연산자가 포함된다.
AND & - 두 비트 필드 모두에서 해당 비트가 설정되어 있을 때만 결과 비트를 설정한다.
이를 통해 특정 레이어의 존재 여부를 확인할 수 있음
OR | - 두 비트 필드 중 하나라도 해당 비트가 설정되어 있으면 비트 결과를 설정한다
새로운 레이어를 추가할 때 유용함
XOR ^ - 두 비트 필드에서 해당 비트가 서로 다를 때만 결과 비트를 설정함
두 레이어의 차이를 찾을 때 사용됨
NOT ~ - 모든 비트를 반전시킨다.
특정 레이어를 제외시킬 때 유용
비트 시프트 연산
1 < < n 은 1을 n 번째 비트 위치로 시프트
n번째 레이어를 나타내는 비트마스크를 생성하는데 사용됨
특정 레이어에 대한 연산을 쉽게 수행할 수 있다
이 방법은 물리적 충돌, 레이캐스팅, 카메라 렌더링 등을 제어하는데 사용된다
충돌검사: 비트마스킹을 사용해 특정 레이어에 속한 오브젝트만을 대상으로 충돌 검사를 수행할 수 있음
레이캐스팅 제어 : 레이캐스트가 특정 레이어의 오브젝트에만 반응하도록 비트마스크를 설정할 수 있음
카메라 렌더링 설정 : 카메라가 특정 레이어의 오브젝트만을 렌더링하도록 설정하여, 게임의 시각적 요소를 세밀하게 제어
비트연산자랑 레이어마스크
뭔가 중요한건 알겠는데 좀 어려운 것 같다
으하핫
'제출용 > TIL' 카테고리의 다른 글
내일배움캠프 30일차 TIL + 스카이박스 색바꾸기 (0) | 2024.05.28 |
---|---|
내일배움캠프 29일차 TIL + 프로젝트 세팅, 스카이박스 (0) | 2024.05.27 |
내일배움캠프 27일차 TIL + 열거형, SO (0) | 2024.05.23 |
내일배움캠프 26일차 TIL + 마우스 따라 회전하는 무기 만들기, 프리팹 (0) | 2024.05.22 |
내일배움캠프 25일차 TIL + 쿼터니언, 삼각함수 (0) | 2024.05.21 |