인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

prokimssam님의 프로필 이미지
prokimssam

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

몬스터 AI #2

Player가 Monster를 타고 올라가는 이유는?

작성

·

312

1

이전 질문을 검색하다 보니 hit.point가 몬스터를 클릭할 때 Y값이 1 이상으로 되면서 Player가 쓰러진다는 내용을 보고 코드를 아래와 같이 수정했더니 Playe가 쓰러지지 않았습니다.

플레이어는 Use Gravity Off/ isTrigger On으로 된 상태입니다.

 

 

그런데 강사님이 공유해주신 코드를 비교해보면 y값을 잡아주지 않은 상태에서

몬스터 클릭시 hit.point의 y값이 1 이상이 되어도 Player가 몬스터를 타고 올라가지 않고, 넘어지지도 않습니다.

 

_destPos의 Y값이 1 이상인데, Player가 움직일때 Y값을 0을 유지하는 설정, 코드가 있는 걸까요?

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

그런건 없지만, Collider 범위의 미세한 차이 때문에
그렇게 차이가 나지 않을까 예상합니다.

이런 부분은 저도 정확히 어떻게 코드를 작성하셨는지, 혹은 prefab 설정을 어떻게 하셨는지
알 수 없기 때문에 질문하셔도 정확히 답변 드리기 힘듭니다.
책을 보면서도 종종 다르게 동작할 때는
부분적으로 (코드부터, 그 다음 prefab을, ...) 복붙하거나 옮겨오면서
동일하게 동작하는지 보면서 범인을 좁혀보는 것이 아주 유용합니다.

Rookiss님의 프로필 이미지
Rookiss
지식공유자

저~어어어엉말 10시간 헤딩해도 못찾으시거든 그 때 다시 알려주세요.
하지만 이런 부분은 괴롭더라도 스스로 이겨내는 연습을 해야
추후 수월한 개발이 가능합니다.
쥬신 등 오프라인 학원에서도 문제 발생 시
다른 학우들이 절대 답을 알려주지 않는 것이 원칙입니다.

prokimssam님의 프로필 이미지
prokimssam
질문자

Rookiss님 코드 보고 진짜 이것 저것 다 비교해보고 찾았습니다!!

 

Unity 설정의 문제일 줄 알았는데, 코드 한 줄이 빠졌네요.
PlayerController에서

image

 

화면에서 RayCast를 쏠때

바닥은 y가 0이니까~ 올라가지 않는데,

Monster는 y가 Monster의 키만큼 올라갈 수 있었어요.

그런데 저 빨간색 코드 한 줄이 lockTarget이 잡혔을 때 다시 _destPos 를 잡아줘서 y가 0이 되는 거였네요~~ ㅎㅎ

 

진짜 코드 한 줄 빠진걸 정말 Unity설정의 문제인가 해서 이리 저리 정말 많이 찾았습니다.

10시간 비교해 보려고 했는데, 마음만 먹으니 생각보다 빨리 찾아졌어요!

 

댓글이 많은 용기를 주셨어요!

정말 감사합니다!!

 

prokimssam님의 프로필 이미지
prokimssam

작성한 질문수

질문하기