[Unity] LayerMask

Yerin·2023년 7월 13일
0

6번 레이어인 Monster만 raycasting 하도록 코드를 수정하자!

void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); ;

        int mask = (1 << 6);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit, 100.0f, mask)) { 
        	 Debug.Log($"Raycast {hit.collider.gameObject.name} !");
        }
    }

❗ raycasting은 부하가 많은 작업이기 때문에 레이어를 분리하여 최적화하는 것이 중요하다! ❗

//직관적인 코드
LayerMask mask = LayerMask.GetMask("Monster") | LayerMask.GetMask("Wall");

//위 아래 코드는 동일하게 작동한다.
int mask = (1 << 6) | (1 << 7);
profile
재밌는 코딩 공부

0개의 댓글