본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quarter - 플레이어 이동, 벽충돌 방지 구현

*칙칙한 오브젝트 색 하얗게 만들기 -> Window - Rendering -> Lighting -> Generate Lighting 클릭

 

1.바닥 및 벽 생성

 

2.플레이어 이동구현

*Freeze Rotation x와 z와 체크를 해주어야 관성에 의한 넘어짐이 없어짐

 

 

3.애니메이션

FBX : 각종 정보들이 구분되어 저장되는 3D 포맷

 

- 빈 애니메이터를 만들어서 Player오브젝트 자식으로 들어있는 Mesh Object 오브젝트에 드래그 앤 드랍하고

- 우리가 가져온 Model 에셋안의 FBX중에 Player의 것안에 들어있는 idle, walk, run 애니메이션을 애니메이터에 넣어서 

   아래와 같은 트랜지션을 만들어 준다

- 이후 isRun과 isWalk라는 bool값의 파라미터를 만들어 관계에 따라 적절히 이용한다

*이동로직 중요

1. anim.setbool()안의 true이냐 false이냐를 유동적으로 지정해주는 스킬,

2. 삼항연산자로 speed를 한줄에 유동적으로 정의해주는 스킬

3. 3D에서는 LootAt() 함수로 쉽게 입력방향에 대한 오브젝트 방향을 결정할 수 있는 스킬

 

4.카메라 플레이어 추적

 

 

 

5.벽충돌 방지

방법1 : 충돌이벤트를 활용,

*아래 로직 중요

벽과 충돌한 당시의 방향정보를 저장하는 기술

 -Player 오브젝트의 Collision Detection을 Continous 또는 Continous Dynamic으로 해줘야함

하지만 이 방법은 계속 충돌시 다시 벽을 관통하거나 벽과 충돌시 떨림현상이 발생

 

 

방법2 레이케스트 활용 (이 방법 선택)

*3D에서 레이케스트의 방향을 transform.foward로 주면 오브젝트가 바라보는 방향으로 생김