유니티 기초 강좌: 스크립트 추가

Unity(유니티)는 게임 개발을 위한 강력한 엔진입니다. 이 강좌에서는 유니티의 기본 기능을 살펴보고 게임 오브젝트에 어떻게 스크립트를 추가하는지에 대해 배울 것입니다. 스크립트를 추가하는 과정은 유니티에서 상호작용을 구현하고 기능을 추가하는 중요한 부분입니다.

1. 유니티 개요

유니티는 2D 및 3D 게임을 개발할 수 있는 플랫폼으로, 다양한 플랫폼에 배포할 수 있는 강력한 도구입니다. Unity는 게임 비디오, 가상현실(VR), 증강현실(AR) 등 다양한 유형의 콘텐츠를 제작할 수 있습니다.

1.1 유니티의 기본 구성 요소

유니티의 핵심 구성 요소는 다음과 같습니다:

  • 씬(Scenes): 게임의 각 레벨 또는 환경을 나타냅니다.
  • 게임 오브젝트(Game Objects): 씬 내의 모든 요소들로, 3D 모델, 카메라, 빛 등.
  • 컴포넌트(Components): 게임 오브젝트에 추가하여 기능과 속성을 부여합니다. 스크립트는 컴포넌트의 일종입니다.
  • 스크립트(Scripts): 게임 로직을 작성하는 데 사용됩니다.
  • 자산(Assets): 스크립트, 오디오, 텍스처, 3D 모델 등 프로젝트에서 사용하는 모든 파일을 말합니다.

2. 유니티 설치하기

유니티를 사용하려면 먼저 Unity Hub를 통해 유니티 에디터를 설치해야 합니다.

  1. Unity Hub를 다운로드하고 설치합니다.
  2. Unity Hub를 실행하고, ‘Installs’ 섹션으로 이동합니다.
  3. 새 버전의 유니티를 추가하려면 ‘Add’ 버튼을 클릭하고 필요한 모듈을 선택하여 설치합니다.
  4. 이제 프로젝트를 생성하려면 ‘Projects’ 섹션으로 이동하거나 ‘New’ 버튼을 클릭하여 새 프로젝트를 생성합니다.

3. 새로운 프로젝트 시작하기

새 프로젝트를 시작하면 기본 씬이 자동으로 생성됩니다. 여기에서 게임 오브젝트를 추가하고, 스크립트를 작성하여 상호작용을 구현할 수 있습니다.

  1. Unity Hub에서 ‘New’를 선택하여 새로운 프로젝트를 생성합니다.
  2. 2D 또는 3D 프로젝트 템플릿을 선택하고, 프로젝트 이름과 저장 위치를 지정합니다.
  3. 프로젝트를 생성하고 유니티 에디터가 열리면 기본 씬이 표시됩니다.

4. 게임 오브젝트 추가

게임 오브젝트는 유니티 내에서 모든 대상을 나타냅니다. 새로운 게임 오브젝트를 추가하려면 다음 단계를 따릅니다:

  1. 상단 메뉴에서 GameObject > 3D Object를 선택하고 다양한 오브젝트(예: Cube, Sphere, Plane)를 추가합니다.
  2. Hierarchy 패널에서 현재 씬의 게임 오브젝트를 확인하여 추가된 오브젝트의 성격을 확인합니다.

5. 스크립트 추가하기

유니티에서 스크립트는 C# 언어로 작성됩니다. 스크립트를 추가하는 방법은 다음과 같습니다:

  1. Project 패널에서 Assets > Create > C# Script를 선택합니다.
  2. 스크립트에 이름을 부여하고 더블 클릭하여 Visual Studio와 같은 코드 편집기로 엽니다.

5.1 기본 스크립트 구조

using UnityEngine;

public class MyFirstScript : MonoBehaviour
{
    void Start()
    {
        // 게임이 시작될 때 호출
        Debug.Log("Hello, Unity!");
    }

    void Update()
    {
        // 매 프레임마다 호출
        transform.Rotate(Vector3.up, 100 * Time.deltaTime);
    }
}

위의 코드는 유니티에서 스크립트를 작성하는 기본 구조를 보여줍니다. MonoBehaviour 클래스를 상속받음으로써 게임 오브젝트에 기능을 추가할 수 있는 스크립트를 생성합니다.

5.2 스크립트를 게임 오브젝트에 추가하기

스크립트를 작성한 후에는 게임 오브젝트에 추가해야 합니다:

  1. Hierarchy 패널에서 스크립트를 추가할 게임 오브젝트를 선택합니다.
  2. Inspector 패널에서 Add Component 버튼을 클릭하고 작성한 스크립트의 이름을 입력하여 추가합니다.

6. 변수 및 데이터 관리

스크립트 내에서 사용하는 데이터는 변수를 통해 관리됩니다. 변수는 상태를 저장하는 데 사용되며, 유니티에서 다양한 형식을 지원합니다.

6.1 기본 데이터 타입

C#에서 사용되는 기본 데이터 타입은 다음과 같습니다:

  • int: 정수값을 저장합니다.
  • float: 소수점을 포함하는 숫자를 저장합니다.
  • bool: 참(True) 또는 거짓(False) 값을 저장합니다.
  • string: 문자열 데이터를 저장합니다.

예를 들어, int score;는 게임 스코어를 저장하는 정수형 변수를 선언합니다.

6.2 변수의 접근성

유니티에서는 변수를 다양한 접근성으로 관리할 수 있습니다:

  • public: 다른 스크립트나 유니티 에디터에서 접근 가능.
  • private: 해당 스크립트 내에서만 접근 가능.
  • protected: 해당 스크립트 또는 자식 스크립트에서 접근 가능.

7. 메서드 및 함수

메서드는 특정 작업을 수행하는 코드 블록입니다. 유니티에서는 다양한 메서드를 사용하여 게임 로직을 정의할 수 있습니다.

7.1 기본 메서드 사용하기

다음의 예시는 파라미터를 가진 메서드의 구현 방법입니다:

public void Move(Vector3 direction)
{
    transform.Translate(direction * Time.deltaTime);
}

7.2 이벤트 메서드

유니티에서는 게임의 특정 시점에 자동으로 호출되는 이벤트 메서드가 있습니다. 예를 들어:

  • Start(): 스크립트가 활성화될 때 한 번 호출됩니다.
  • Update(): 매 프레임마다 호출됩니다.
  • OnCollisionEnter(): 다른 게임 오브젝트와 충돌할 때 호출됩니다.

8. 물리 엔진과 충돌 처리

유니티의 물리 엔진을 사용하면 실제처럼 자연스러운 움직임과 충돌을 구현할 수 있습니다.

8.1 Rigidbody 컴포넌트 추가하기

게임 오브젝트에 물리 효과를 주려면 Rigidbody 컴포넌트를 추가해야 합니다:

  1. 게임 오브젝트를 선택한 후 Inspector 패널에서 Add Component를 클릭합니다.
  2. Rigidbody를 검색하여 추가합니다.

8.2 충돌 처리하기

void OnCollisionEnter(Collision collision)
{
    Debug.Log("충돌 발생: " + collision.gameObject.name);
}

9. UI 요소 추가 및 스크립트 연결하기

게임의 사용자 인터페이스(UI)는 플레이어와 상호작용할 수 있는 중요한 요소입니다. 유니티에서는 UI를 쉽게 구현할 수 있습니다.

9.1 UI 캔버스 생성하기

UI 요소를 추가하기 위해선 캔버스가 필요합니다:

  1. Hierarchy 패널에서 UI > Canvas를 선택하여 캔버스를 생성합니다.
  2. 캔버스 안에 버튼, 텍스트 등 UI 요소를 추가합니다.

9.2 버튼 클릭 이벤트 처리하기

버튼 클릭에 대한 반응을 스크립트로 정의할 수 있습니다:

using UnityEngine;
using UnityEngine.UI;

public class UIButtonHandler : MonoBehaviour
{
    public Button myButton;

    void Start()
    {
        myButton.onClick.AddListener(OnButtonClick);
    }

    void OnButtonClick()
    {
        Debug.Log("버튼 클릭!");
    }
}

10. 애니메이션 추가하기

게임에 생동감을 주기 위해 애니메이션을 추가할 수 있습니다. 유니티에서는 애니메이션 시스템을 통해 쉽게 구현할 수 있습니다.

10.1 애니메이션 클립 만들기

애니메이션 클립을 만들려면:

  1. Animation 창을 열고, 애니메이션을 추가할 게임 오브젝트를 선택합니다.
  2. Create 버튼을 클릭하여 새 애니메이션 클립을 생성합니다.

10.2 애니메이션 트리거 사용하기

using UnityEngine;

public class CharacterAnimator : MonoBehaviour
{
    private Animator animator;

    void Start()
    {
        animator = GetComponent();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            animator.SetTrigger("Jump");
        }
    }
}

11. 게임 빌드 및 배포

게임 개발의 마지막 단계는 게임을 빌드하고 배포하는 것입니다. 유니티에서는 다양한 플랫폼에 배포할 수 있는 기능을 제공합니다.

11.1 빌드 설정하기

게임을 빌드하려면:

  1. 상단 메뉴에서 File > Build Settings를 선택합니다.
  2. 목표 플랫폼을 선택하고 Build를 클릭합니다.
  3. 빌드할 위치를 선택하여 exe 파일 또는 앱을 생성합니다.

11.2 배포하기

생성된 파일을 사용하여 다양한 플랫폼에 배포할 수 있습니다. 웹, PC, 모바일 등을 포함한 플랫폼에 맞춰 배포할 수 있습니다.

12. 결론

이 강좌에서는 유니티의 기본 개념과 스크립트를 추가하는 방법을 알아보았습니다. 스크립트를 통해 게임에 상호작용과 로직을 추가하여 더욱 풍부한 경험을 제공할 수 있습니다. 유니티를 사용한 게임 개발은 무궁무진한 가능성을 제공합니다.

이제 다양한 기능과 요소를 결합하여 자신만의 재미있는 게임을 만들어 보세요!