Unity(유니티)는 게임 개발을 위한 강력한 엔진입니다. 이 강좌에서는 유니티의 기본 기능을 살펴보고 게임 오브젝트에 어떻게 스크립트를 추가하는지에 대해 배울 것입니다. 스크립트를 추가하는 과정은 유니티에서 상호작용을 구현하고 기능을 추가하는 중요한 부분입니다.
1. 유니티 개요
유니티는 2D 및 3D 게임을 개발할 수 있는 플랫폼으로, 다양한 플랫폼에 배포할 수 있는 강력한 도구입니다. Unity는 게임 비디오, 가상현실(VR), 증강현실(AR) 등 다양한 유형의 콘텐츠를 제작할 수 있습니다.
1.1 유니티의 기본 구성 요소
유니티의 핵심 구성 요소는 다음과 같습니다:
- 씬(Scenes): 게임의 각 레벨 또는 환경을 나타냅니다.
- 게임 오브젝트(Game Objects): 씬 내의 모든 요소들로, 3D 모델, 카메라, 빛 등.
- 컴포넌트(Components): 게임 오브젝트에 추가하여 기능과 속성을 부여합니다. 스크립트는 컴포넌트의 일종입니다.
- 스크립트(Scripts): 게임 로직을 작성하는 데 사용됩니다.
- 자산(Assets): 스크립트, 오디오, 텍스처, 3D 모델 등 프로젝트에서 사용하는 모든 파일을 말합니다.
2. 유니티 설치하기
유니티를 사용하려면 먼저 Unity Hub를 통해 유니티 에디터를 설치해야 합니다.
- Unity Hub를 다운로드하고 설치합니다.
- Unity Hub를 실행하고, ‘Installs’ 섹션으로 이동합니다.
- 새 버전의 유니티를 추가하려면 ‘Add’ 버튼을 클릭하고 필요한 모듈을 선택하여 설치합니다.
- 이제 프로젝트를 생성하려면 ‘Projects’ 섹션으로 이동하거나 ‘New’ 버튼을 클릭하여 새 프로젝트를 생성합니다.
3. 새로운 프로젝트 시작하기
새 프로젝트를 시작하면 기본 씬이 자동으로 생성됩니다. 여기에서 게임 오브젝트를 추가하고, 스크립트를 작성하여 상호작용을 구현할 수 있습니다.
- Unity Hub에서 ‘New’를 선택하여 새로운 프로젝트를 생성합니다.
- 2D 또는 3D 프로젝트 템플릿을 선택하고, 프로젝트 이름과 저장 위치를 지정합니다.
- 프로젝트를 생성하고 유니티 에디터가 열리면 기본 씬이 표시됩니다.
4. 게임 오브젝트 추가
게임 오브젝트는 유니티 내에서 모든 대상을 나타냅니다. 새로운 게임 오브젝트를 추가하려면 다음 단계를 따릅니다:
- 상단 메뉴에서
GameObject > 3D Object
를 선택하고 다양한 오브젝트(예: Cube, Sphere, Plane)를 추가합니다. - Hierarchy 패널에서 현재 씬의 게임 오브젝트를 확인하여 추가된 오브젝트의 성격을 확인합니다.
5. 스크립트 추가하기
유니티에서 스크립트는 C# 언어로 작성됩니다. 스크립트를 추가하는 방법은 다음과 같습니다:
- Project 패널에서
Assets > Create > C# Script
를 선택합니다. - 스크립트에 이름을 부여하고 더블 클릭하여 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 스크립트를 게임 오브젝트에 추가하기
스크립트를 작성한 후에는 게임 오브젝트에 추가해야 합니다:
- Hierarchy 패널에서 스크립트를 추가할 게임 오브젝트를 선택합니다.
- 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 컴포넌트를 추가해야 합니다:
- 게임 오브젝트를 선택한 후 Inspector 패널에서
Add Component
를 클릭합니다. Rigidbody
를 검색하여 추가합니다.
8.2 충돌 처리하기
void OnCollisionEnter(Collision collision)
{
Debug.Log("충돌 발생: " + collision.gameObject.name);
}
9. UI 요소 추가 및 스크립트 연결하기
게임의 사용자 인터페이스(UI)는 플레이어와 상호작용할 수 있는 중요한 요소입니다. 유니티에서는 UI를 쉽게 구현할 수 있습니다.
9.1 UI 캔버스 생성하기
UI 요소를 추가하기 위해선 캔버스가 필요합니다:
- Hierarchy 패널에서
UI > Canvas
를 선택하여 캔버스를 생성합니다. - 캔버스 안에 버튼, 텍스트 등 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 애니메이션 클립 만들기
애니메이션 클립을 만들려면:
- Animation 창을 열고, 애니메이션을 추가할 게임 오브젝트를 선택합니다.
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 빌드 설정하기
게임을 빌드하려면:
- 상단 메뉴에서
File > Build Settings
를 선택합니다. - 목표 플랫폼을 선택하고
Build
를 클릭합니다. - 빌드할 위치를 선택하여 exe 파일 또는 앱을 생성합니다.
11.2 배포하기
생성된 파일을 사용하여 다양한 플랫폼에 배포할 수 있습니다. 웹, PC, 모바일 등을 포함한 플랫폼에 맞춰 배포할 수 있습니다.
12. 결론
이 강좌에서는 유니티의 기본 개념과 스크립트를 추가하는 방법을 알아보았습니다. 스크립트를 통해 게임에 상호작용과 로직을 추가하여 더욱 풍부한 경험을 제공할 수 있습니다. 유니티를 사용한 게임 개발은 무궁무진한 가능성을 제공합니다.
이제 다양한 기능과 요소를 결합하여 자신만의 재미있는 게임을 만들어 보세요!