Layer Mask 와 Layer Tag 둘다 유니티에서 추가 해서 사용할 수 있다.
Tag : 각 게임 오브젝트를 구분하는 용도로 사용. OnCollision 과 OnTrigger에서 tag를 이용해 충돌한 오브젝트를 검사할수 있다.
Layer : 충돌 체크를 할수 있다. 또한 카메라 컴포넌트에서 컬링 마스크를 설정하기 위한 용도로 사용될수 있다.
int layerMask = (1 << 레이어 번호); ex >> int layerMask = (1 << 8);
LayerMask layerMask = LayerMask.GetMask("레이어 이름");
int layerMask = (1 << 레이어 번호) | (1 << 레이어 번호);
LayerMask layerMask = LayerMask.GetMask("레이어 이름") | LayerMask.GetMask("레이어 이름");
- | 를 사용하여 또는 이라는 의미로 레이어를 추가 할 수 있음
if (Input.GetMouseButtonDown(0)) //왼쪽 마우스 클릭시
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(Camera.main.transform.position, ray.direction * 100f, Color.red, 1.0f);
LayerMask layerMask = LayerMask.GetMask("Monster") | LayerMask.GetMask("Wall");
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100f , layerMask))
{
Debug.Log($"Raycast Camera : {hit.collider.gameObject.name}");
}
}
'유니티' 카테고리의 다른 글
VR 프로젝트 초기 셋팅 (0) | 2023.12.28 |
---|---|
유니티 UI버튼 클릭 안될 때 (0) | 2022.09.13 |
Raycast에 대해 알아보자. + Input.mousePosition (0) | 2022.08.12 |
Collision, Trigger, RigidBody 에 대하여 공부해보자. (0) | 2022.08.12 |
ResourceManager 클래스를 만들어 보자. (0) | 2022.08.11 |