타일 기반 게임이 있습니다. 타일을 어린이 대상으로 타워를 배치합니다. 나는 레이캐스팅으로 타워에서 마우스 클릭을 감지 할 수 있기를 원합니다. 타일과 타워에는 모두 2 차원 상자 충돌기가 있습니다. 타일에 대한 클릭을 감지 할 수는 있지만 레이크 캐스트는 타워에있는 클릭을 감지하지 못합니다. 이 문제를 어떻게 해결할 수 있습니까? 감사.Unity : Raycast가 하위 개체의 Collider에서 작동하지 않습니다.
if (Input.GetMouseButtonDown(0))
{
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
ray.origin = camera.transform.position;
RaycastHit2D hit = Physics2D.Raycast(camera.transform.position, -Vector2.up, 50, 8);
if (hit.collider != null && !EventSystem.current.IsPointerOverGameObject())
{
Debug.Log(hit.collider.transform.tag);
//Transform objectHit = hit.transform;
}
}
}
나는 타일 마스크 (여기 층 (8)) 나는 아무것도 얻을 :
여기 raycasting 내 코드입니다. 타일 (타일과 같은)에도 2d 상자 콜라이더가 있지만 광선이 결코 타워에 부딪치지 않는 것 같습니다.
문제가있는 충돌기 속성의 스크린 샷을 표시 할 수 있습니까? 레이캐스터가 전혀 타격을가합니까? 자세한 내용은 문제를 해결할 수있는 상태로 좁히는 데 도움이됩니다. – Serlite
타일의 충돌자를 확인하고 타일에 자식이 있는지 찾아서 제어 할 수 있습니다. [https://docs.unity3d.com/ScriptReference/Transform.GetChild.html](https://docs.unity3d.com/ ScriptReference/Transform.GetChild.html) –
실제 질문을하십시오. 가능한 한 좋은 이슈를 설명하려고 시도하십시오. –