Unity Rigidbody 물리 실습으로 Sphere가 기울어진 Plane에서 굴러가는 장면

Unity 6 기초 강좌 – Rigidbody 물리 적용과 Sphere 굴리기 실습

Unity Rigidbody를 이용한 Sphere 물리 시뮬레이션 예제 화면
Unity에서 Rigidbody 물리를 적용하여 Sphere가 기울어진 Plane을 따라 자연스럽게 굴러가는 실습 장면


유니티를 처음 공부하면서 가장 기본이 되는 기능 중 하나는 물리 시스템(Rigidbody)이다.
이번 실습에서는 Sphere(구)가 중력에 의해 떨어지고, 기울어진 Plane을 따라 굴러가는 동작을 구현하고,
추가로 C# 스크립트를 통해 오브젝트의 정보를 확인하는 과정까지 함께 진행했다.



🎯 실습 목표

  • Rigidbody를 이용한 중력 적용 이해
  • Collider를 통한 충돌 처리 이해
  • Transform을 이용한 위치 정보 확인
  • Debug.Log로 값 출력



🧱 1. 오브젝트 구성

Unity에서 다음과 같이 구성했다.

🔹 Sphere (공)

  • Sphere Collider (기본 포함)
  • Rigidbody (물리 적용)
  • TestScript (직접 작성한 스크립트)

🔹 Plane (바닥)

  • Mesh Collider (기본 포함)


📐 2. Plane 기울이기

Plane을 기울여서 공이 자연스럽게 굴러가도록 설정했다.

예시:

  • Rotation Z: 20 ~ 30

이렇게 하면 경사면이 만들어져 Sphere가 한쪽 방향으로 이동하게 된다.



⚙️ 3. Rigidbody 설정

Sphere에 Rigidbody를 추가하고 다음과 같이 설정했다.

  • Use Gravity ✔ 체크
  • Is Kinematic ❌ 해제

이 설정으로 Sphere는 중력의 영향을 받아 아래로 떨어진다.

📁 4. 스크립트 생성 및 적용

Assets 폴더 안에 Script 폴더를 만들고
TestScript.cs를 생성한 후 Sphere에 추가했다.



💻 5. 작성한 코드

using Unity.Hierarchy;
using UnityEngine;
using UnityEngine.UI;

public class TestScript : MonoBehaviour
{
    Transform obj_trans;
    float position_x;

    void Start()
    {
        obj_trans = GetComponent<Transform>();
        Debug.Log(obj_trans);

        position_x = obj_trans.position.x;
        Debug.Log(position_x);
    }

    void Update()
    {
    }
}



🔍 6. 코드 설명

✔ Transform 가져오기

obj_trans = GetComponent<Transform>();
  • 현재 Sphere 오브젝트의 Transform 컴포넌트를 가져옴
  • 위치(Position), 회전(Rotation), 크기(Scale) 정보 포함

✔ 위치 값 확인

position_x = obj_trans.position.x;
  • Sphere의 x 좌표 값을 가져옴

✔ Debug.Log 출력

Debug.Log(position_x);
  • Console 창에 값 출력
  • 실행 중 값 확인할 때 사용



▶️ 7. 실행 결과

Play 버튼을 누르면 다음과 같은 동작이 발생한다.

  1. Sphere가 중력에 의해 아래로 떨어짐
  2. Plane과 충돌
  3. 기울어진 방향으로 굴러 내려감
  4. Console 창에 Transform 정보 및 x 좌표 값 출력


🎥 실행 영상



💡 이번 실습에서 배운 점

  • Rigidbody를 추가해야 물리가 적용된다
  • Use Gravity를 통해 중력 활성화
  • Collider가 있어야 충돌이 발생한다
  • Transform을 통해 위치 정보를 가져올 수 있다
  • Debug.Log로 값을 확인할 수 있다


⚠️ 정리 및 개선

현재 코드에서 불필요한 부분:

  • using Unity.Hierarchy;
  • using UnityEngine.UI;

👉 정리된 코드:

using UnityEngine;

public class TestScript : MonoBehaviour
{
    Transform obj_trans;

    void Start()
    {
        obj_trans = GetComponent<Transform>();
        Debug.Log(obj_trans.position.x);
    }
}



🚀 마무리

이번 실습은 매우 간단하지만
유니티의 핵심 개념인:

  • 물리 시스템 (Rigidbody)
  • 충돌 처리 (Collider)
  • 컴포넌트 구조 (Transform)
  • 스크립트 접근 방식 (GetComponent)

을 한 번에 이해할 수 있는 중요한 과정이었다.

앞으로는 이 구조를 기반으로
움직임 제어, 점프, 입력 처리 등을 추가해 나갈 예정이다.



Posts created 242

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top

원활한 서비스 이용을 위한 안내

현재 광고 차단 프로그램이 켜져 있습니다. 이로 인해 사이트의 일부 기능이 제한될 수 있으니, 쾌적한 이용을 위해 광고 차단 해제 후 새로고침 부탁드립니다.