- 비용을 적게 들이고 길을 쉽게 찾음
- 화면터치(마우스클릭)으로 길을 찾음
1. 프로젝트를 만든다
1) Asset Store에서 Tank를 다운받음
2)마음에 드는 프리팹 하이라키창에 드래그앤드롭 (맵)
LevelArt transform (0 0 0, 0 0 0, 1 1 1)
3) 밝기조절
4) Window > Rendering > light rendering > Auto Generate 체크 해제
그림자를 굽는다...? -> 시간이 계속 걸림. 부하걸림.
2. Player 만들기
1) create empty > "Player" > 자식으로 > cube
-> 실제 게임개발의 전형적인 스타일
2) Player, Cube 둘다 Reset setting
3) Cube transform (0 1 0, 0 0 0, 1 2 1)
4) Player position (0 0.3 0) -> 살짝 띄움
-> 바닥에 딱 붙여놓으면 밑으로 떨어질 수 있음 (안정성을 위해)
5) Cube > BoxCollider > Remove Component
6) Player > Add component > nav mesh agent 추가
-> 길찾기 컴포넌트
7) 설정
8) Player > capsule Collider 추가
9) 설정
10) cube를 비활성화하고 확인해본다.
11) Player > rigidbody 추가 > Is Kinematic 체크
-> 모든 물리력에 영향을 받지 않게 하기 위한 처리
3. Navigation Mesh 만들기
1) Windows > AI > navigation 클릭
2) navigation 굽기
4. navigation static mesh 만들기
1) 새로 Cube 생성 > Inspector > static 활성화
2) 다시 Bake 하면 이 물체를 빼고 구워진 것을 볼 수 있음
5. PlayerController 스크립트 만들기.
1) PlayerController.cs 만들고 Player와 연동
2) 코드 작성
3) update() 코드작성 - 엄청 중요하고 많이 쓰이는 코드
* ScreenPointToRay : 3D 좌표계의 ray를 씀.. (점밖에안보임) but 월드좌표로 했을때는 직선으로 쭉 감.
카메라가 시점이 바뀔 때 마다 그 시점에서의 z값으로 ray를 쏨. (mousePosition -> 2D값)
* out hit : output되는 hit (포인트된 그지점)
6. PlayerController 스크립트 만들기 - 이동가능 LayerMask 만들기
1) 변수 선언
2) 코드 추가
* // hit 값은 리턴, 100.0f : ray 길이 (너무길면 부하가 걸림))
3) Ground object에 Layer 추가
4) Player > Inspector > Player Controller > Movement Mask > Ground
하려는것 : 1) navi mesh 로 길찾기
2) 포인트 잡기
7. PlayerMovement.cs 스크립트 만들기
1) 만들고 Player와 연동.
2) PlayerMovement.cs 코드 추가
3) PlayerController.cs 코드 추가
4) 실행해보기 -> 마우스 포인트 지점따라서 움직인다.
8. CameraController 스크립트 만들기 - 캐릭터를 따라가는 카메라
1) CameraConroller.cs 만들고 MainCamera 오브젝트와 연동
2) CameraController.cs 에 코드 작성
3) 연동
4) 설정 세팅
5) 따라 움직이는지 실행해보기.
9. Camera Zoon in and out
1) CameraController.cs 코드추가
2) update () 코드 추가
3) 에러가 날건데 설정초기화하기.
4) 줌인, 줌아웃이 되는 것을 볼 수 있음.
10. CameraController - 캐릭터 중심으로 카메라 회전.
1) CameraController.cs 코드 추가
2) 코드 추가
3) 실행해보기
'Unity' 카테고리의 다른 글
0624 GameAI FSM Programming (0) | 2019.06.24 |
---|---|
0621 캐릭터 옷입히기 (0) | 2019.06.21 |
0620 Scene Loading (0) | 2019.06.20 |
0620 GyroBall 2 (0) | 2019.06.20 |
0619 GyroBall (0) | 2019.06.19 |