프로젝트해요/게임_개발

[Unity] #15. FPS 게임 제작(6)

yenas0 2023. 8. 29. 05:10
반응형
목차

1. 플레이어 폴리싱
2. 길 찾기 (네비 메시)

 

 

 

 

1. 플레이어 폴리싱

 

: 플레이어 외형 모양 교체

 

Asset Store에서 원하는 모양.. 아무거나 써도 된다. 나는 군인 모양 선택함.

 

 

가져온 이미지 플레이어 오브젝트 하위로 넣어두고~

 

적용하고 보니 캐릭터가 너무 홀쭉 빼빼로가 되어 버려서 Scale Factor 항목을 좀 줄였다.(0.7 정도로)

 

한 뒤에 충돌역역도 캐릭터 크기에 맞도록 조정했다. 카메라 위치도 캐릭터 눈쪽으로 약간 올려주었다..~~

 

다음으로는 이 캐릭터에도 앞선 내용처럼 애니메이션을 적용할 예정이다.

 

[Animator Controller] 추가하고 Controller 항목에 저 에셋을 추가해준다.

 

 

가지고 있는 idle 파일애니메이터 뷰 쪽에 드래그 앤 드랍 하면 아래처럼 견착을 하고 있는 군인형태로 변하게 된다.

 

이대로 게임 실행하면 총 모습이 약간 뚫려보이면서 어색해 보이는데 이거는 메인 카메라 컴포넌트에서 Near값을 조금씩 조정해보면 된다.

 

 

 

애니메이터에 블렌드 트리도 추가하고 이걸 활용해서 레이어 전환을 한다. 걷는거 등등.. 이걸로 애니메이션 처리를 하면 된다.

 

 

이런 느낌으로..~~

 

 

애니메이터만 건들면 안되고 PlayerMove 스크립트도 조절을 해야한다.

Start 함수에서 컴포넌트를 받아서 애니메이터를 받아오면 된다.

 

Update함수에서는 사용자의 입력을 키보드 등을 통해 받으면 그 값을 벡터 크기에 따라 애니메이션이 전환되도록 벡터의 크기를 파라미터로 전달하면 된다.

 

달리는 것 뿐만아니라 이동에서 공격하는 모션까지 유사한 방법으로 진행하면 된다.

 

 

 

2. 길 찾기

 

: 적을 이동시킬 때 지형을 분석하도록 해서 장애물을 피해 목적지까지 최단거리로 이동시킨다.

 

먼저 이동가능한 영역을 설정해야 하니까 빈 오브젝트를 생성하고 이름을 지정했다.

 

해당 오브젝트해서 [Navigation Static]을 선택한다. (하위 오브젝트까지 일괄 적용해도 된다.)

 

 

생성된 내비게이션 뷰 상당에서 [Bake] 탭을 클릭해서 Agent Radius와 Agent Height를 조정한다.

 

 

 

에너미 오브젝트에서 [Add Component] - [Navigation] - [Nav Mesh Agent] 을 선택해서 컴포넌트를 추가한다.

 

 

 

위에 네비게이션 조작하기 위해서 스크립트를 추가해야 한다.

 

 

EnemyFSM 스크립트에 네이게이션 메시 기능을 사용하기 위해 네임 스페이스를 추가하고 에이전트 컴포넌트를 제어하기 위해 네이게이션 에이전트 클래스를 변수선언했다.

Start()함수에서 네이게이션 에이전트 컴포넌트를 캐싱하는 방식으로 구현하면 된다.

 

 

 

 

EnemyFSM 스크립트가 꽤나 내용이 많아졌길래 정리할겸 전체를 한번 올리려고 했는데 200라인이 넘어가서 블로그에 올리기는 무리일듯.. 'ㅅ'

 

반응형