2015-01-25 2 views
1

메인 카메라에서 레이 캐스트 작업을 마우스 (또는 터치)로 가져오고 싶을 때 클릭하고 개체를 클릭하면 트리거됩니다. 나는() 아래로 개체의 갱신에 스크립트가 :Raycast는 스크립트가 기본 카메라에있는 경우에만 작동합니까?

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
RaycastHit hit; 
if (Physics.Raycast(ray, out hit)) { 
    // Debug output to confirm it is hit. 
} 

꽤 나는 많은 자습서에서 볼 표준 스크립트입니다. 그러나 디버그 줄에 도달하지 않습니다.

유일한 차이점은 개체의 업데이트이며 카메라의 스크립트 update()가 아닙니다. 차이가 있습니까?

업데이트 스크립트의 코드가 광선을 방출 한 원래 게임 개체 (또는 카메라)에 속해야합니까? 또는 어떤 게임 객체의 첨부 된 스크립트의 update()에있을 수 있습니까?

내가 가지고있는 객체에는 충돌기가 없습니다. 광선을 충돌 시키려면 객체에 하나가 있어야합니까?

답변

1

Physics.Raycast을 사용하면 공간의 어떤 지점에서 어떤 방향으로 광선을 촬영할 수 있습니다. 시작점과 방향을 어떻게 든 계산할 수있는 한 gameObject가 연결된 게임 객체는 전혀 중요하지 않습니다.

문제는 레이 타겟에 콜리 더가없는 것입니다. Raycasting은 광선이 충돌하는 충돌 자만 계산합니다.

그래서 충돌 장치를 추가하면 문제가 해결됩니다. Physics2D 탭에서 2D 콜리 더를 사용하는 경우 Physics2d.Raycast을 사용해야 함을 기억하십시오. Physics 탭의 3D 충돌기를 사용하는 경우 Physics.Raycast을 사용해야합니다.

+0

감사합니다. 예. 내가 충돌자를 넣자 마자 작동합니다. 감사. :) – murvinlai

관련 문제