Study/Unity

Raycast, LayerMask

치피킨자 2019. 8. 9. 13:13

1. RayCast 

Physics.Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteractionqueryTriggerInteraction = QueryTriggerInteraction.UseGlobal);)

 

Physics.Raycast (Vector3 origin, Vector3 direction, float maxDistance, int layerMask) : bool

 

파라메터: 시작점, 방향, 최고도달 거리, 타겟 

 

2. LayerMask

https://docs.unity3d.com/kr/530/Manual/Layers.html

 

유니티 - 매뉴얼: 레이어

Optimizing Shader Load Time 레이어 기반의 충돌 감지 레이어 Layers는 Cameras에 따라 씬의 일부만 렌더링 하거나, Lights에 따라 씬의 일부만 밝히는 등에 가장 자주 사용됩니다. 한편, 선택적으로 Collider를 무시 또는 Collisions을 생성하는 데에도 사용하실 수 있습니다. 레이어 만들기 첫 번째 단계는 새 레이어를 만들면, 레이어를 GameObject에 할당 할 수있습니다. 새 레이어를 만들려면 Edit 메

docs.unity3d.com

LayerMask: 특정 레이어를 포함 혹은 제외 시키고 레이캐스트 실행 

 

사용법 

// 레이어 하나만 인식 

int layerMask = 1 << (index of layer) or LayerMask.NameToLayer("name of layer"); 

// 특정 레이어만 제외 

lalayerMask = ~layerMask;

// 복수의 레이어 인식 

int layerMask = 1 << LayerMask.NameToLayer("name of layer") + 1 << LayerMask.NameToLayer("name of layer2");