유니티로 미니 로봇 제작하기 | Unity

Bluewave·2025년 1월 2일
post-thumbnail

🤖 개념 정리

유니티의 기본 개념

게임 엔진

유니티는 게임 개발에서 필요한 물리 엔진, 그래픽 처리, 애니메이션 등을 제공하는 도구
프로그래머가 직접 모든 것을 구현할 필요 없이, 유니티의 기능을 활용해 효율적으로 개발 가능

유니티의 주요 구성 요소

  • Scene: 게임이 진행되는 화면 / 게임의 모든 객체와 환경이 배치됨
  • GameObject: 게임에 등장하는 모든 객체의 기본 단위
  • Component: GameObject에 부착되어 동작을 추가하는 요소ㅗ
    • ex) Transform(위치/회전/크기), Rigidbody(물리 효과), Collider(충돌 처리)

주요 개념 정리

Collider

객체의 물리적 경계
충돌을 감지하거나 상호작용할 때 사용

  • Capsule Collider: 캡슐 모양
  • Cube Collider: 정육면체 모양
  • Cylinder Collider: 원기둥 모양

Material

객체에 적용되는 표면 속성
색상, 반사광, 질감 등을 설정 가능
Meterial을 생성하고 Collider에 적용하면 시각적으로 색을 입힐 수 있음

Prefab

GameObject를 재사용 가능한 형태로 저장한 파일
한 번 만든 로봇을 다른 프로젝트에서 불러와 활용 가능

UI Canvas와 Text

  • Canvas: 화면에 UI를 표시하는 공간
  • Text: Canvas 위에 텍스트를 출력하는 요소

키 입력과 동작 구현

Input System

유니티는 Input.GetKey(KeyCode)를 사용해 키보드 입력 감지

void Update() {
    if (Input.GetKey(KeyCode.UpArrow)) {
        transform.Translate(Vector3.forward * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.LeftArrow)) {
        transform.Rotate(Vector3.up, -rotationSpeed * Time.deltaTime);
    }
}

Transform

객체의 위치, 회전, 크기를 제어하는 기본 컴포넌트

  • 이동: Translate()
  • 회전: Rotate()
  • 크기 변경:localScale

애니메이션

키 입력에 따라 이동, 회전 시 애니메이션 설정 가능
ex. 정지 상태일 땐 애니메이션을 멈추도록 코드 구현

실습에서 배울 것

  • 객체 생성 및 배치
  • UI 출력
  • 조작 구현
  • Prefab 활용

🤖 실습하기

1. 유니티 설치하기

https://unity.com/kr/download
Unity 허브 다운로드

회원 가입 하기

새 프로젝트 생성

ㄴ 간단한 구현이라 3D로 선택함 (그래픽 퀄리티는 Universal 3D가 더 좋다고 합니당)

2. Collider로 로봇 형태 만들기

Collider 추가하기

GameObject > 3D Object
Capsule, Cube, Cylinder 추가

위치 조정하기

Scnene View에서 드래그 or Inspector 탭에서 Transform 값 조정
크기도 조절해서 주어진 모양을 갖춤

  • Capsule: 로봇 몸통
  • Cube: 로봇의 팔, 다리
  • Cylinder: 로봇 머리

** Hierarchy 창에서 오브젝트 이름 변경 가능!

오브젝트 색 바꾸는 방법

  1. Meterial 생성
    Assets > Create > Material

  2. Inspector에서 Material 선택 후 Albedo 값 클릭 / 원하는 색상 선택해서 적용

  3. GameObject에 적용
    Material을 드래그해서 로봇의 오브젝트에 끌어다 놓음

3. 움직임 구현하기

방향키로 로봇 움직이기 with C#

부모-자식 관계 설정하기

이 단계를 하지 않으면 몸통과 팔 선글라스 분리 쇼 발생~!

  1. Hierachy 창에서 드래그로 연결
    팔, 다리, 선글라스 등 부위를 클릭한 상태에서 몸통 위로 드래그
    그러면 부모-자식 관계가 설정되고, 부모가 움직이면 자식도 함께 움직임
    (몸통을 메인으로)
  2. Hierachy 창에서 구조 확인 가능

새 스크립트 파일 생성

Assets창에서 마우스 오른쪽 클릭 > Create > Scripting > C# Script
이름 RobotMovement로 설정함

using UnityEngine;

public class RobotMovement : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float rotationSpeed = 100f;

    void Update()
    {
        // 전진/후진 이동
        float move = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;
        transform.Translate(0, 0, move);

        // 좌/우 회전
        float rotate = Input.GetAxis("Horizontal") * rotationSpeed * Time.deltaTime;
        transform.Rotate(0, rotate, 0);
    }
}

스크립트 GameObject에 적용

로봇의 메인 몸체 클릭
우측의 Inspector 창에서 하단의 Add Component 버튼 클릭 > RobotMovement 검색 후 추가

Game 창을 클릭해서 테스트

4. 로봇 이름 표시하기

UI Canvas 생성하기

로봇 이름 표시하기

Hierarchy 창에서 오른쪽 마우스 > UI > Canvas
Inspector 창에서 Render Mode를 World Space로 변경

Text 추가하기

Canvas 선택 > 오른쪽 마우스 클릭 > UI > Text-TextMeshPro 선택
+) 한글이 깨져서 한글 폰트 다운받은 후 assets 폴더에 넣어주고
Window > TextMeshPro > Font Asset Creator에서 폰트 파일 선택 후 Character Set 사진처럼 설정

위치 적절히 조정해주기

5. Prefab으로 저장하기

다른 프로젝트에서도 쉽게 재활용할 수 있도록 Prefab으로 저장

Hierachy 창에서 로봇 전체 선택
Prefab 저장

  • Project > Assets 폴더로 드래그

이러면 기존의 로봇 삭제하고 다시 드래그해서 불러오기 가능!

+) 빌드 파일 생성하기

File > Build Settings
Add Open Scenes 눌러서 현재 열려 있는 Scene을 빌드에 추가
빌드 버튼 클릭

이렇게 빌드 파일을 생성하면 exe 파일이 만들어져서 바로 게임 플레이 가능!

profile
Developer's Logbook

0개의 댓글