본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quater - 점프 및 회피구현, 카메라 떨림방지, 벽바닥속성변경

1.점프애니메이션

- 1회성인 점프 애니메이션과 회피애니메이션은 아래와 같이 애니메이터를 구성

   파라미터3개 추가 -> bool isJump, Trigger doDodgh, Trigger doJump

 

- Any State -> Dodge     조건 : doDodge(Trigger)

  Dodge -> Exit             조건 : x, Has Exit Time 체크

  Any State -> Jump       조건 : doJump(Trigger), isJump(True)

 Jump -> Land              조건 : isJump(false)

 Land -> Exit                 조건 : x. Has Exit Time 체크

 

2.점프코드

 

 

3.중력조절

Edit- projectSetting -> Physics에서 gravity값을 기존 -9.81에서 -40정도로 중력의 영향을 많이 받도록 조정하여

자연스러운 점프 구현

 

4.회피 구현

 

 

 

*카메라가 플레이어를 따라가는데 떨림 발생 해결

 -기존 카메라 로직을 Update()에서 작성한 것을 LateUpdate()로 변경

 

*플레이어와 자연스러운 충돌발생토록 벽과 바닥 속성 변경

 - 바닥과 벽에 rigidBody를 추가하고 UseGravity체크해제, is Kinematic 체크, 오브젝트 이름쓰는 곳 우측에 static 체크, mass = 0으로 만듬

 - physic material 를 생성하여 마찰과 탄성을 0으로 만들고 마찰결합도 최소로 만든 후 벽 오브젝트에 드래그 앤 드랍

 

 이유 :  1. 플레이어의 collision detection이 continuous인데 이것은 static인 오브젝트와 충돌할때 효과적이기 때문임

          2. 두 물체가 충돌시의 효과를 유니티가 빠르게 계산하기 위해서는 두 오브젝트모두 rigidbody가 있어야함

           3.  is Kinematic 체크는 우리가 코드상으로 직접움직이게 해줄경우만 오브젝트가 움직인다는 뜻

          4. 벽과 마찰이 없어야 점프 후 부딪혔을때 자연스럽게 밑으로 떨어져 내려옴