반응형
Notice
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Do Something IT

[Unity3D] GameObject 에 중력(Gravity)적용 방법에 관한 고찰과 Rigidbody, CharacterController(2) 본문

Unity3D

[Unity3D] GameObject 에 중력(Gravity)적용 방법에 관한 고찰과 Rigidbody, CharacterController(2)

아낙시만더 2011. 8. 4. 15:13
반응형
저번 시간에 중력 적용에 관해 Rigidbody와  collider의 관계와 Rigidbody를 쓰지 않고 Translate를 이용하여 중력을 적용 하는 방법을 알아 보았다. 이번 시간에는 또 다른 중력 적용 방법인 CharacterController에 대해 알아보겠다. 

CharacterController : 캐릭터 컨트롤러 Rigidbody 물리학을 사용하지 않는 3 인칭 또는 1인칭 플레이어 제어 주로 사용됩니다.
즉 이는 
기본적인 캐릭터의 움직임(W,A,S,D,점프 등등)을 컨트롤하기 위해 쓰는 컴포넌트이다. 움직임은 기본 키보드 입력 값에 따라 받아오는 메서드가 존재한다.


만약 당신이 주인공 케릭터를 정하고 이를 컨트롤 하려고 한다면 이를 이용하여 개발하면 매우 효율적인 작업을 할 수 있다.
이 Component는 해당 케릭터에 관한 키보드 입력 이벤트와 충돌 이벤트를 검출 할 수 있다. 이 외에도 여러가지 기능을 지원해준다.

하지만 이를 해당 객체에 Component로 지정하는 순간 우리는 또 다시 중력에 관한 문제를 언급 해야한다. 이 앞까지 우리는 
Rigidbody를 이용하여 UseGravity를 사용하거나 
Translate를 이용하여 구현 하였었다.  하지만 해당 객체에 CharacterController를 사용 할 경우 Rigidbody를 중복으로 사용 할 수 없다. 그렇다고 Translate 사용할 경우 충돌이 발생하지 않는다. 

자 이제 CharacterController의 Move와 SimpleMove를 이용 하여  중력을 구현해보자. 

function Move (motion : Vector3) : CollisionFlags

Description

A more complex move function taking absolute movement deltas.

Attempts to move the controller by motion, the motion will only be constrained by collisions. It will slide along colliders. CollisionFlags is the summary of collisions that occurred during the Move. This function does not apply any gravity. 

 
 일단 Move를 보면 더 복잡하고 완벽한 삼방향 이동을 지원하는 함수이다. 이는 컨트롤의 움직임을 시도한다. 충돌체와 부딪치게 되면 미끌린다.

function SimpleMove (speed : Vector3) : boolean

Description

Moves the character with speed.

Velocity along the y-axis is ignored. Speed is in meters/s. Gravity is automatically applied. Returns if the character is grounded. It is recommended that you make only one call to Move or SimpleMove per frame.  


 SimpleMove는  속도 케릭터 이동합니다.
Y - 축을 따라 속도는 무시됩니다. 속도 m / s의 중력이 자동으로 적용됩니다.  

위의 두함수의 설명을보면 SimpleMove는 자동으로 중력이 적용되면  한프레임마다 한번씩 호출할것을 추천 하고있다.
Move는 임의로 -y값을 주어 처리해야된다.


반응형
Comments