[Unity] Package Manager - Unity(2)

녹차·2026년 3월 7일

Unity

목록 보기
9/9
post-thumbnail

Introduction

Unity에서 프로젝트를 개발하다 보면 다양한 기능을 추가하거나 필요한 도구를 설치해야 하는 경우가 많습니다. 예를 들어 입력 시스템, UI 도구, 렌더 파이프라인, 협업 도구등은 기본 엔진 기능만으로는 부족할 수 있습니다. 이러한 기능들을 필요에 따라 설치하고 관리할 수 있도록 제공되는 시스템이 바로 Unity의 Package Manager입니다.

Package Manager는 Unity에서 제공하는 공식 패키지뿐만 아니라, 프로젝트에 필요한 여러 기능을 쉽게 추가하고 업데이트할 수 있도록 도와주는 도구입니다. 개발자는 이를 통해 별도의 설치 과정 없이 필요한 패키지를 검색하고 프로젝트에 적용할 수 있으며, 패키지 버전 관리도 함께 수행할 수 있습니다.

Unity에서 제공하는 Package Manager에는 매우 다양한 패키지가 포함되어 있으며, 이 중에는 Unity에 기본적으로 포함된 내장 패키지(Built-in Package)도 존재합니다. 따라서 모든 패키지를 하나씩 깊이 다루기보다는, 먼저 전체적인 구조와 역할을 간단히 살펴본 뒤 실제 개발에서 자주 사용되는 패키지들을 중심으로 추후에 자세히 알아보겠습니다.

Body

JetBrains Rider Editor & Visual Stduio Editor

Unity에서는 C# Script를 보다 편리하게 작성하고 관리하기 위해 외부 코드 편집기와 연동할 수 있으며, 대표적으로 JetBrains Rider Editor와 Visual Stduio Editor 패키지를 제공합니다.

JetBrains Rider Editor란? Unity와 JetBrains Rider IDE를 연결해주는 공식 패키지로, Unity 프로젝트의 C# 스크립트를 Rider에서 작성하고 디버깅할 수 있도록 지원합니다. 이 패키지를 통해 Unity 프로젝트 구조를 자동으로 인식하고, Unity API 자동완성, 코드 분석, 디버깅, 프로젝트 파일(.sln, .csproj) 동기화 등의 기능을 사용할 수 있습니다.

[Unity]
The JetBrains Rider Editor package provides an integration for using the JetBrains Rider IDE as a code editor for Unity. It adds support for generating .csproj files for code completion and auto-discovery of installations


Visual Stduio Editor란? Unity와 Visual Studio IDE를 연동하기 위한 공식 패키지로, Unity에서 작성한 C# 스크립트를 Visual Studio에서 편집하고 디버깅할 수 있도록 지원합니다. 또한 Unity 관련 코드 자동완성, 프로젝트 파일 생성 및 관리, Unity 콘솔 로그와의 연동 등을 통해 개발 생산성을 높이는 역할을 합니다.

[Unity]
Code editor integration for supporting Visual Studio as code editor for unity. Adds support for generating csproj files for intellisense purposes, auto discovery of installations, etc.

Universal Render Pipeline & Universal Render Pipeline Config

URP란? Unity에서 제공하는 Scriptable Render Pipeline(SRP) 기반의 범용 그래픽 렌더링 파이프라인입니다. 쉽게 말해 Unity에서 게임 화면을 어떻게 렌더링(그리는지)을 결정하는 그래픽 시스템입니다.

URP는 성능 최적화와 다양한 플랫폼 지원을 목표로 만들어졌으며, 특히 모바일, 콘솔, PC 등 여러 플랫폼에서 안정적인 성능을 제공하도록 설계되었습니다. 또한 Shader Graph와 함께 많이 사용됩니다.

[Unity]
The Universal Render Pipeline (URP) is a prebuilt Scriptable Render Pipeline, made by Unity. URP provides artist-friendly workflows that let you quickly and easily create optimized graphics across a range of platforms, from mobile to high-end consoles and PCs.

Unity에서는 대표적으로 3가지 Render Pipeline이 있습니다.

  • Built-in Render Pipeline : 기존 Unity 기본 렌더링
  • HDRP(High Definition Render Pipeline) : 고품질 그래픽
  • URP : 성능 중심 범용 렌더링

Universal Render Pipeline Config란? Universal Render Pipeline Config는 Unity에서 URP(Universal Render Pipeline)를 사용할 때 렌더링 설정을 관리하는 에셋(Asset)입니다. 쉽게 말해, 프로젝트에서 그래픽이 어떤 방식으로 렌더링될지 결정하는 설정 파일이라고 볼 수 있습니다.

[Unity]
The Universal Render Pipeline (URP) uses this package to control the settings of some of its features. If you want to use this package to configure URP, you must link it as a local package.

Unity에서 URP를 적용하면 UniversalRenderPipelineAsset이라는 설정 파일이 생성되며, 이 파일에서 조명(Lighting), 그림자(Shadow), 렌더링 품질(Rendering Quality) 등의 옵션을 조정할 수 있습니다. 이러한 설정을 통해 프로젝트의 그래픽 품질과 성능을 상황에 맞게 조절할 수 있습니다.

예를 들어 URP Config에서는 다음과 같은 설정을 관리할 수 있습니다.

  • Render Scale (렌더링 해상도 비율)
  • Anti-Aliasing (계단 현상 완화)
  • Main Light / Additional Light 설정
  • Shadow Distance 및 Shadow Resolution
  • HDR 사용 여부

이러한 옵션들은 게임의 그래픽 품질과 성능에 직접적인 영향을 주기 때문에, 특히 모바일이나 캐주얼 게임 개발에서는 프로젝트 환경에 맞게 적절히 설정하는 것이 중요합니다.

일반적으로 URP Config는 프로젝트의 Graphics 설정에서 지정되며, 해당 에셋이 적용되면 프로젝트 전체가 URP 기반으로 렌더링됩니다. 따라서 URP Config는 URP 프로젝트에서 렌더링 동작을 제어하는 핵심 설정 파일이라고 할 수 있습니다.

Visual Scriping

Visual Scriping이란? Unreal Engine의 BluePrint와 같이 텍스트 코드를 작성하는 대신 노드(Node)와 연결선(Graph)을 이용해 프로그램 로직을 구성하는 방식의 스크립팅 방법입니다.

Unity의 Visual Scripting 기능은 이전에 Bolt Visual Scripting이라는 에셋이었으며, 이후 Unity에 공식적으로 통합되어 현재는 Unity Visual Scripting으로 제공되고 있습니다.

[Unity]
Visual scripting is a workflow that uses visual, node-based graphs to design behaviors rather than write lines of C# script.

Unity Version Control

Unity Version Control이란? Unity에서 제공하는 버전 관리 시스템(Version Control System, VCS) 으로, 프로젝트의 파일 변경 이력을 관리하고 여러 개발자가 동시에 작업할 수 있도록 도와주는 협업 도구입니다.

[Unity]
The package gives you the ability to use Unity Version Control in the Unity editor. To use Unity Version Control, a subscription is required.

이 시스템은 과거 Plastic SCM이라는 이름으로 사용되었으며, Unity에 인수된 이후 Unity Version Control이라는 이름으로 통합되었습니다.

Q1, 그러면 Github / Git / Fork 등으로 대체 가능한가요?

네, 가능합니다. Unity Version Control은 프로젝트 파일의 변경 이력을 관리하고 협업을 지원하는 버전 관리 시스템이기 때문에, 동일한 목적을 가진 다른 버전 관리도구로도 충분히 대체할 수 있습니다.

다만 Unity 프로젝트는 Scene, Prefab, Texture 등 대용량 또는 바이너리 파일이 많이 포함되는 경우가 많기 때문에 Git을 사용할 때는 .gitignore 설정이나 Git LFS와 같은 추가 설정을 함께 사용하는 것이 일반적입니다.

정리하면, Unity Version Control은 Unity 환경에 최적화된 버전 관리 도구이지만, 실제 개발 환경에서는 Git과 GitHub 같은 도구를 사용하여 충분히 동일한 목적의 버전 관리와 협업을 수행할 수 있습니다.

Unity UI

Unity UI란? Unity에서 제공하는 게임 화면에 표시되는 사용자 인터페이스(UI)를 제작하기 위한 시스템입니다. 게임 플레이에 필요한 버튼, 텍스트, 이미지, 메뉴, HUD 등을 화면에 표시하고 사용자의 입력을 처리하는 역할을 합니다.

[Unity]
Unity UI is a set of tools for developing user interfaces for games and applications. It is a GameObject-based UI system that uses Components and the Game View to arrange, position, and style user interfaces.

Input System

Input System이란? Unity에서 플레이어의 입력을 처리하기 위한 시스템입니다. 키보드, 마우스, 게임패드, 터치와 같은 다양한 입력 장치에서 발생하는 신호를 감지하고 이를 게임 로직과 연결하는 역할을 합니다.

[Unity]
A new input system which can be used as a more extensible and customizable alternative to Unity's classic input system in UnityEngine.Input.

Unity에는 기존에 사용되던 Legacy Input Manager가 있었지만, 보다 확장성 있고 유연한 입력 처리를 위해 새로운 Input System 패키지가 도입되었습니다. 이 시스템은 여러 입력 장치를 통합적으로 관리할 수 있으며, 하나의 액션을 여러 입력 장치에 쉽게 연결할 수 있는 것이 특징입니다.

Input System에서는 입력을 Action 기반으로 관리합니다. 예를 들어 “Jump”, “Move”, “Attack” 같은 액션을 먼저 정의한 뒤, 그 액션에 키보드 키나 게임패드 버튼 등을 연결하는 방식입니다. 이를 통해 같은 기능을 다양한 입력 장치에서 동일하게 사용할 수 있습니다.

또한 Input System은 다음과 같은 기능을 제공합니다.

  • 키보드, 마우스, 게임패드, 터치 입력 지원
  • 입력을 Action 단위로 관리
  • 여러 입력 장치 동시 지원
  • 코드와 UI를 통한 입력 이벤트 처리

이러한 구조 덕분에 Input System은 특히 멀티 플랫폼 게임이나 다양한 입력 장치를 지원해야 하는 프로젝트에서 유용하게 사용됩니다.

Cinemachine & Timeline

Cinemachine이란? Unity에서 제공하는 카메라 제어 및 연출을 위한 패키지입니다. 게임에서 카메라의 움직임을 코드로 직접 구현하지 않아도, 다양한 설정을 통해 자동으로 카메라를 추적하거나 장면을 연출할 수 있도록 도와주는 시스템입니다.

[Unity]
Smart camera tools for passionate creators.

일반적으로 게임에서 카메라는 플레이어를 따라 이동하거나 특정 대상을 바라보도록 구현해야 하는데, 이러한 동작을 직접 스크립트로 구현하면 작업량이 많아질 수 있습니다. Cinemachine을 사용하면 가상 카메라(Virtual Camera)를 통해 대상 추적, 카메라 전환, 화면 구도 조정 등의 작업을 비교적 쉽게 설정할 수 있습니다.

예를 들어 다음과 같은 상황에서 Cinemachine을 활용할 수 있습니다.

  • 플레이어를 자동으로 따라가는 추적 카메라
  • 특정 위치를 바라보는 고정 카메라
  • 장면 전환 시 카메라 자연스럽게 이동
  • 컷씬이나 이벤트 연출 카메라

또한 Cinemachine은 Timeline과 함께 사용하면 컷씬이나 스토리 연출을 더욱 쉽게 제작할 수 있습니다.


Timeline이란? Unity에서 제공하는 시퀀싱(Sequencing) 도구로, 게임에서 발생하는 연출, 컷씬, 이벤트 흐름 등을 시간 순서에 따라 구성할 수 있도록 도와주는 기능입니다.

[Unity]
Use Unity Timeline to create cinematic content, game-play sequences, audio sequences, and complex particle effects.

쉽게 말해 Timeline은 영상 편집 프로그램의 타임라인처럼 여러 요소를 시간 축에 배치하여 장면을 연출하는 시스템이라고 볼 수 있습니다. 개발자는 애니메이션, 카메라 움직임, 사운드, 이벤트 등을 하나의 타임라인 위에 배치해 특정 시점에 실행되도록 설정할 수 있습니다.

예를 들어 다음과 같은 상황에서 Timeline을 활용할 수 있습니다.

  • 게임 시작 시 등장하는 컷씬 연출
  • 캐릭터 애니메이션과 카메라 이동을 동시에 실행
  • 특정 이벤트 발생 시 음악과 효과를 함께 재생
  • 스토리 진행 중 대화와 장면 전환 연출

Addressables & Addressables for Android

.
.
.

Conclusion

.
.
.

  • JetBrains Rider Editor & Visual Stduio Editor
  • Universal Render Pipeline & Universal Render Pipeline Config
  • Visual Scriping
  • Unity Version Control
  • Unity UI
  • Input System
  • Cinemachine & Timeline
  • Addressables & Addressables for Android
profile
CK23 Game programmer

0개의 댓글