Unity
[Unity] RayCast 특정 Layer만 충돌시키기
Guk-blog
2019. 6. 12. 17:19
728x90
반응형
RayCast를 사용하면 레이어를 지정 안했을때 가장 먼저 닿는 오브젝트를 인식함.
만약 원하지 않는 오브젝트를 투과해서 원하는 오브젝트에만 닿게 하고 싶다면 아래 코드를 사용
선언 : int _layerMask = 1<<LayerMask.NameToLayer("One");
사용 : Physics.Raycast(ray, out hit, 100f, _layerMask)
or Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), hit, Mathf.Infinity, _layerMask);
등등
몇 개의 레이어만 원할 때
선언 : int _layerMask =1<<(-1)-((1<<LayerMask.NameToLayer("One"))|(1<<LayerMask.NameToLayer("Two");
위에서 (-1)은 모든 레이어를 말함
즉 One과 Two를 제외한 모든 레이어에 충돌 확인을 하겠다는 것.
RayCast 함수
- public static bool Raycast(Ray ray, out RaycastHit hitInfo);
- public static bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance);
- public static bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance, int layerMask);
- public static bool Raycast(Ray ray, out RaycastHit hitInfo, [Internal.DefaultValue("Mathf.Infinity")] float maxDistance, [Internal.DefaultValue("DefaultRaycastLayers")] int layerMask, [Internal.DefaultValue("QueryTriggerInteraction.UseGlobal")] QueryTriggerInteraction queryTriggerInteraction);
- public static bool Raycast(Ray ray, float maxDistance);
- public static bool Raycast(Ray ray, float maxDistance, int layerMask);
- public static bool Raycast(Ray ray);
- public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance);
public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask); - public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask, QueryTriggerInteraction queryTriggerInteraction);
- public static bool Raycast(Vector3 origin, Vector3 direction);
- public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance);
- public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance, int layerMask);
- public static bool Raycast(Vector3 origin, Vector3 direction, [Internal.DefaultValue("Mathf.Infinity")] float maxDistance, [Internal.DefaultValue("DefaultRaycastLayers")] int layerMask, [Internal.DefaultValue("QueryTriggerInteraction.UseGlobal")] QueryTriggerInteraction queryTriggerInteraction);
- public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo);
728x90
반응형