Menu
CoddyTech

중력과 질량

Coddy Unity 여정의 물리와 게임플레이 섹션에 포함된 레슨. 63개 중 1번째.

Rigidbody는 코코넛이 떨어질 때 보여 준 것처럼 객체를 Unity의 물리 시스템에 맡깁니다. 그때부터 중력은 매초 객체의 속도를 9.81 m/s씩 높이며, Rigidbody에는 그 방식을 결정하는 설정이 있습니다. 그중 두 가지는 킬로그램 단위의 mass(새 Rigidbody의 경우 1)와 useGravity(새 Rigidbody의 경우 켜짐)입니다.

질량은 물체가 떨어지는 속도를 바꾸지 않습니다. 중력은 무거운 물체를 더 세게 끌어당기지만, 무거운 물체는 그만큼 정확히 더 가속하기 어렵기 때문에 같은 높이에서 떨어뜨린 1 kg 상자와 50 kg 모루는 같은 프레임에 착지합니다. 질량은 물체끼리 서로 밀 때 중요합니다. 모루는 상자를 옆으로 밀쳐내지만, 상자는 모루를 거의 움직이지 못합니다. 이 파티 풍선은 질량을 작게 설정하고 중력의 영향을 받지 않으므로, 장면에서 놓인 위치에 그대로 매달려 있습니다.

void Start()
{
    Rigidbody rb = GetComponent<Rigidbody>();
    rb.mass = 0.2f;
    rb.useGravity = false;
}

useGravity가 꺼져 있어도 풍선은 여전히 질량이 있고 무언가에 부딪히면 움직입니다. 중력의 당기는 힘만 멈춥니다. 다시 true로 설정하면 객체가 어디에 있든 중력이 다시 작용합니다. Unity의 물리 시스템에는 공기도 없으므로 Rigidbody에 Linear Damping을 설정하지 않으면 깃털도 벽돌처럼 떨어집니다.

challenge icon

챌린지

쉬움

크레인은 부두 위에서 두 개의 화물을 들고 있습니다. 무거운 Safe와 가벼운 Box입니다. 둘 다 Rigidbody와 CraneLoad 스크립트가 있으며, Inspector에서 weight를 설정합니다(Safe는 80, Box는 2).

  • 게임이 시작되면 Rigidbody의 질량을 weight로 설정하고 중력이 당기지 않도록 하여 화물이 현재 위치에 매달려 있게 하세요.
  • Space를 누르면 중력이 다시 당기게 하여 화물이 떨어지게 하세요.

Play를 누르고 Space를 누른 다음 어떤 화물이 먼저 착지하는지 지켜보고, Check를 누르세요.

직접 해보기

using UnityEngine;

public class CraneLoad : MonoBehaviour
{
    public float weight = 1f;

    void Start()
    {
        // 질량을 weight로 설정하고 중력이 당기지 않도록 합니다
    }

    void Update()
    {
        // Space: 중력이 다시 당기도록 합니다
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

물리와 게임플레이의 모든 레슨