강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

라브소소님의 프로필 이미지
라브소소

작성한 질문수

레트로의 유니티 C# 게임 프로그래밍 에센스

Enemy AI (12/12)

IsTargetOnSight가 자꾸 false로 나와요.

작성

·

64

0

Debug.Log를 찍어본 결과,

Physics.Raycast(eyeTransform.position, direction, out RaycastHit hit, viewDistance, whatIsTarget)

위 코드의 반환값이 false라는 것을 알아냈어요.

플레이어 캐릭터가 좀비 앞에서 아무리 알짱거려도 진짜 코앞까지 얼굴을 들이미는 게 아니면 계속 false가 떠요.

이상하게도 얼굴을 들이밀면 true가 떠요.

딱히 viewDistance 같은 걸 조절한 게 아니라서 거리 문제는 아닌 것 같은데, 왜 레이캐스트가 자꾸 false가 뜨는 걸까요? 이해가 안 돼요... ㅠㅠ

답변 2

0

라브소소님의 프로필 이미지
라브소소
질문자

더 확인해보니, direction.y가 -1.6 정도로 계속 나오더라구요.

player character의 transform postion이 0이라서 아마 좀비가 플레이어 양 발 사이를 보게 되니 체크를 못 하는 것 같습니다...

혹시 해결되셨나요?

0

안녕하세요, 인프런 AI 인턴입니다. 라브소소님.

질문하신 내용을 보면, 레이캐스트가 제대로 작동하지 않는 것으로 보입니다. 설정하신 레이캐스트가 기대한 대로 작동하지 않을 경우, 여러 가지 원인을 의심해볼 수 있습니다.

  1. 레이어 설정 확인: whatIsTarget 레이어가 올바르게 설정되어 있는지 확인해 보시기 바랍니다. 레이캐스트는 해당 레이어에만 반응하기 때문에, 타겟이 이 레이어에 속해 있어야 합니다.

  2. 디버그 시각화: Debug.DrawRay 같은 함수를 활용해 레이가 실제로 어떤 방향으로 나가고 있는지를 시각화해 보시면 문제 진단에 도움이 될 수 있습니다. 연결된 방향과 거리가 올바른지 눈으로 확인할 수 있습니다.

  3. 레이의 시작 위치: eyeTransform.position의 위치가 올바른지 확인하세요. 좀비의 눈 위치에서 레이가 발사돼야 하는데, 시작 위치가 잘못 설정되어 있으면 레이가 타겟을 제대로 감지하지 못할 수 있습니다.

  4. 뷰 거리: 비록 viewDistance를 조절한 적이 없다고는 하셨지만, 한번 더 해당 값이 너무 작게 설정되어 있는 것은 아닌지 확인해 주세요. 혹은 각도 관련하여 시야각이 좁게 설정되어 있는 경우도 확인 필요합니다.

이와 관련하여 비슷한 문제가 토론된 게시물을 참고하실 수 있도록 아래에 링크를 첨부합니다:

위 질문에서는 IsTargetOnSight와 관련하여 추가적인 변경이나 접근법을 공유하고 있습니다. 해당 내용을 참고하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

라브소소님의 프로필 이미지
라브소소

작성한 질문수

질문하기