해결된 질문
작성
·
428
답변 1
0
안녕하세요. 3가지 정도 원인이 생각나는데요, 하나씩 확인해보세요!
XR Ray Interactor 컴포넌에 Line Type이 Straight Line일 경우, Max Raycast Distance가 0이 아닌지? 0인 경우에는 광선이 안 보일 수 있습니다.
XR Interactor Line Visual 컴포넌트가 비활성화되어 있는 건 아닌지? 이 경우 플레이하면 Line Renderer가 비활성화 되면서 광선이 안 보일 수 있습니다.
Ray Interactor 자체가 씬에는 보이는데, 게임 뷰에서만 안 보인다면, L-Shift 키를 눌러 컨트롤러를 옆으로 빼보세요. 직선일 경우 카메라와 같은 위치에 나오면 안 보일 수도 있습니다.
(물론 XR Device Simulator를 사용해야 컨트롤러를 조작하기 쉬울 것 같네요.)
XR Ray Interactor, XR Interactor Line Visual 컴포넌트가 하이라키랑 인스펙터 창에 적용된 곳이 없는데 어떻게 찾아야 하나요? add component 에 검색을 하면 두 스크립트가 뜨긴 하지만 강사님이 올려주신 사진 처럼 두개의 컴포넌트가 같이 있는 창을 못찾겠습니다 ㅠㅠ
아마 두 컴포넌트가 있는 곳이 없다면, 실습 게임 제작을 하고 있을 것 같아요.
실습 게임 제작을 진행 중이시면,(어디까지 했는지에 따라 경로가 조금 다릅니다)
Gun 아래에 Ray Visualizer의 HitRayMask를 확인해보면 좋을 것 같아요.
레이어가 다르면 타겟이 되는 오브젝트가 없으니 광선이 안 나올 것 같아요.
정상적으로 나오더라도 총을 하늘로 가리키면 광선이 꺼지는 것처럼요!
HitRayMask는 MOB과 ENVIRONMENT에 설정했고 플레이 전 상황은 씬과 게임 화면 모두 광선이 나옵니다.
플레이 이후에는 위 사진처럼 광선이 나오지 않고 있습니다.
위 사진은 first Select와 Last Select 에 둘 다 설정도 돼 있습니다
c# 스크립트의 문제인지 다른게 문제인지 아직도 잘모르겠습니다
바쁘신 와중에 죄송합니다
프로젝트를 열어 아래 순서로 확인해봤습니다.
먼저 RayVisualizer에 On 메소드가 실행되는지를 확인했습니다.
-> 실행됩니다.
즉 총 자체는 집히고, Select가 작동하고, RayVisualizer가 제대로 켜지는 상태입니다.
그 후에 RayVisualizer에 Process 메소드와 그 안에 레이캐스트가 제대로 작동하는지 확인했습니다. (단순하게 Debug.Log를 각각 띄웠습니다.)
-> 실행이 안 됩니다. 그렇다면 이 사이에 있는 코드가 문제입니다.
이 사이에 코드가 딱 두 줄입니다.
아래 줄에 StopCoroutine이 아니라 StartCoroutine으로 되어있어야 Process 메소드가 정상 실행될 것으로 보입니다.
수정했습니다.
정상 실행됩니다.
만약 1번에서 On 메소드가 실행이 되지 않았다면, 앞서 답변드린 대로 레이어나 이벤트 연결 등의 문제였을 것 같아요.
이렇게 많은 경우의 수 중에 중간쯤에 끊어서 확인해보면 디버깅하기 쉬워집니다!
추가로 하나 더 확인해봐야 할 것 같은데, 무기의 광선의 경우, 다른 오브젝트에 레이캐스팅이 되어서 광선이 안 보이는 것처럼 보일 수도 있을 것 같아요.
특히 광선 시작점이나 방향을 잘못 잡은 경우, 총이나 기타 가까운 오브젝트에 레이캐스팅이 되고 있지는 않나 확인해보세요. 추가로 레이어 설정도 확인해보시면 좋겠네요.