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);