Dialogue System for Unity를 2D게임에 적용 중이었는데 아래의 코드가 정상적으로 작동하지 않음을 확인했다.
hit = Physics2D.Raycast(mainCamera.ScreenToWorldPoint(GetSelectionPoint()), Vector2.zero, maxSelectionDistance, layerMask);
이 코드에서 Direction에 해당하는 파라미터를 Vector2.Zero가 아닌 노멀 벡터를 집어넣어 주니 정상작동을 하는 것을 확인 할 수 있었지만, 해당 코드는 평면상의 점에 대하여 Raycast를 수행하기를 원하는 것이기 때문에 정상적인 동작이 아니다.
이 문제는 Edit > Project Settings > Physcis 2D에 있는 Queries Start in Colliders를 체크해주면 해결된다.
기본값이 체크해제 되어 있고 생각보다 인지하기 어려운 문제라서 해결까지 시간이 소요된 것 같다.
출처: https://answers.unity.com/questions/756380/raycast-ignore-itself.html