이전 글에 이어서 공부를 계속한다!
전속전진이다!
우선, 코인 숫자를 늘려줬다
이제 플레이어 = 캐릭터를 따라오는 적을 만들어야 하는데, 책에서는 Navigation 기능에 대해서 설명하고 있다
몇번 듣기는 했어도 직접 해보기는 처음이라 재미있어 보인다
적으로 사용될 빈 오브젝트를 만들고 위치를 플레이어 앞으로 설정한다
모델은 유니티짱 에셋의 다른 모델, Box유니티짱을 사용한다
이제 여기에 NavMesh를 설정해야 한다
우선, 오브젝트에 navigation static을 넣어야 하는데
왜인지는 모르겠는데 비활성화 되어 있다
????? 진짜 왜?????
..............................................
........................
.........
...
.
알아보니 2022 버전쯔음부터 증발한 기능중 하나라고 한다
왓더???
뭔가 이상한 방식을 통해서 사용은 가능한 것 같다
이게 뭐지....
일단 대충 처리하고 진행해보자
이제 제외 부분에 static처리를 하고 bake를 해줄시 이동가능한 부분이 하늘색으로 표시된다
이제 여기에 NavMeshAgent를 추가해 주어야 한다
컴포넌트에서 Agent를 추가한다
Enemy가 이제 Agent를 가지고 있다
참고로 NavMeshAgent는 NavMesh를 따라 이동하게 하는 컴포넌트라고 한다
이제 이 컴포넌트를 활용할 스크립트를 작성한다
target은 플레이어 오브젝트가 될것이다. position값을 가져오기 위한 값이다
Agent의 destination은 지정 position으로 자동으로 움직이게 하는것이다.
잘 되는것을 확인할 수 있다
GIF로 넣으면 좀더 잘 보일 것 같아 GIF로 중간 중간 넣어보려 한다
이제 적에게도 애니메이션을 넣어보자
적에게 넣을 애니메이션은 결국 플레이어의 애니메이션과 동일하기에, 기존의 애니메이터를 재탕한다
그후 코드에 애니메이터를 추가해준다
이전의 코드와 동일하게, 이동을 하고 있다면, 이동하는 애니메이션이 재생되게 된다
시험해보자
잘되는것을 확인할 수 있다
이제 적과 충돌할시 이벤트를 구현해야 한다. 즉, 게임오버이다
적에게 우선 콜라이더를 추가한다
나는 박스 콜라이더를 사용하려한다
콜라이더 선택은 개인 취향이니 알아서 선택하길
필자는 박스 콜라이더가 익숙해서 그렇다
동일하게 IsTrigger를 넣어준다
이때 박스가 밑으로 가있으니, 이를 보정하기 위해 y값을 넣어줬다
그리고 충돌을 체크하기 위해서 태그를 넣어준다
두번째 태그를 추가한 뒤
적 오브젝트에 태그를 달아준다
이제 플레이어 스크립트에서 충돌에 대해서 처리한다
이전의 충돌에서 if문으로 쪼개서 tag에 따라 다른 처리를 유도한다
이제 테스트해보자
잘 처리됬는것을 알 수 있다
이제 다음 글에서는 아마 시작화면같은 씬에 대해서 다룰 것 같다
본 글에서 사용된 유니티 파일은 깃에 업로드됩니다.
'공부 > 유니티' 카테고리의 다른 글
유니티 문제들(움직임, 카메라, 맵핑) - 캐릭터 움직임, 카메라 무빙, 대각선 이동 보정 (1) | 2024.09.27 |
---|---|
유니티3D 공부(Part 1 - 5, Part 1 END) 씬 전환하기, 타이틀 화면, 승리, 패배 씬 추가 (0) | 2024.09.26 |
유니티3D 공부(Part 1-3) 동전 만들기(팩맨 만들기) (0) | 2024.09.25 |
유니티3D 공부(Part 1-2) 플레이어 이동 코드분석, 애니메이션 추가 (0) | 2024.09.24 |
유니티3D 공부(Part 1-1) 플레이어 움직이기 (0) | 2024.09.24 |