유니티 물리적 제어가 가능한 강체 만들기

2020. 4. 23. 23:13유니티실습

반응형
728x170

안녕하세요 유니티비기너입니다.

이번 글에선 오브젝트가 물리적 제어가 가능토록 만드는 리지드바디에 대해 알아보겠습니다.

 

Rigidbody
rigidbody는 오브젝트가 물리적 제어가 가능하게 만들어줍니다.  

rigidbody가 적용되면 중력이 작용되며 rigidbody가 적용된 다른 오브젝트의 충돌 시 가해진 힘만큼 물체가 이동합니다. 

아래는 Rigidbody의 한속 성인 velocity에 대한 설명입니다.

 

Rigidbody Example

Rigidbody2D rb;
Vector3 moveDirection;

float speed = 80f;

void Start() {
    rb = Getcomponent ≪Rigidbody2D≫();
}

void Update()
{
    float x = 0f;
    float y = 0f;

    if(Input.GetKey(KeyCode.W) {
        y = 1f;
    }

    if(Input.GetKey(KeyCode.S) {
        y = -1f;
    }

    if(Input.GetKey(KeyCode.A) {
        x = 1f;
    }

    if(Input.GetKey(KeyCode.D) {
        x = -1f;
    }    
}

void FixedUpdate() {
    rb.velocity = moveDirection * speed;
}

 

Rigidbody.velocity
물체의 이동하는 속도를 제어하는 속성이다. 

위 그림은 update()안에서 키를 입력받아 움직이려는 방향을 구한 뒤 

fixedUpdate문 안에 rigidbody.velocity속성을 활용하여 물체를 speed만큼 힘을가하여 이동시키는 구문이다.

 

Rigidbody 속성들
Mass : 물체 무게

Drag : 물체 이동 속도 감쇠율

Angular Drag : 물체 회전 속도 감쇠율

Use Gravity : 중력 영향 여부

Is Kinematic : 물리적인 제어가 되지 않고 Transfrom으로 조작

Interpolate : 보간법 제어

None : 보간이 적용되지 않습니다.

Interpolate : 이전 프레임의 폼에 맞게 움직임을 부드럽게 처리

Extrapolate : 다음 프레임의 폼을 추정해 움직임을 두그럽게 처리

Constraints : 움직임에 대한 제약사항

Freeze Position X, Y, Z : 이동을 제한

Freeze Rotation X, Y, Z : 회전을 제한

Collision Detection : 빠른속도의 오브젝트가 충돌을 지나치는 무시현상 방지

 


https://play.google.com/store/apps/details?id=com.NeighborGamer.escape

 

패러디방탈출 캐리비안의해적 - Google Play 앱

※게임방법※ - 주위에 단서들을 획득하세요. - 퀴즈를 풀어 단서를 획득하세요. - 단서를 사용하여 방을 탈출하세요. - 힌트를 사용하여 막혔던 문제를 해결해보세요.

play.google.com

반응형
그리드형