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

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

반응형

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

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

 

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

반응형