
Unity 프로그래밍
Unity를 선택해야 하는 이유

20가지가 넘는 플랫폼에 배포할 수 있는 고성능 C#
Unity가 .NET 런타임 구현체를 사용하면서 C#이 가장 인기 있는 게임 개발 언어로 자리잡았습니다. 엔진이 타겟 디바이스에 맞춰 C# 코드를 컴파일하기 때문에 데스크톱, 모바일, 콘솔, AR, VR 등 각 플랫폼에 배포할 수 있습니다.

원하는 IDE를 사용한 빠른 반복
현재 Visual Studio, Rider 같이 생산성을 극대화할 수 있는 IDE(통합 개발 환경)를 이용하세요. 프로젝트 또는 Unity 에디터에서 효과적인 코드를 작성하고 디버깅한 후 품질 및 성능 분석 등을 수행할 수 있습니다.

에디터를 통한 생산성 향상
디자이너와 아티스트가 Unity에서 직접 더욱 높은 창의력을 발휘할 수 있습니다. 값을 미세하게 조정하거나 에셋을 통합하는 등 반복 작업을 오프로드하고 팀의 요건에 따라 에디터를 확장하세요.

품질 높은 코드를 플레이어에게 제공
Unity의 프로파일링 및 테스트 툴을 사용해 문제를 찾아 코드를 최적화하세요. 또한 Unity Backtrace를 사용해 모든 플랫폼에서 자동으로 캡처되는 크래시와 예외를 모니터링하세요. 그 밖에도 클라우드를 통한 콘텐츠 전송으로 게임 업데이트를 손쉽게 릴리스할 수 있습니다.

C#을 통한 게임플레이 프로그래밍
Unity에서는 애플리케이션에 필요한 실시간 3D 프레임워크를 직접 제작할 필요 없습니다. Unity 플랫폼이 대신 해 주기 때문입니다. 오히려 스크립트에 집중하여 인터랙티브 게임플레이를 만든 후 에디터에서 바로 테스트할 수 있습니다. 그 밖에도 Unity는 C#을 사용하여 메모리를 할당 또는 할당 해제하거나, 가비지 컬렉션을 사용해 메모리 누수를 피하는 등 메모리 관리를 자동으로 처리합니다.

확장 가능한 시스템 디자인
"Unity 어드레서블 에셋 시스템을 통해 한계를 뛰어넘을 수 있었습니다. 메모리 문제를 해결해 주었고, 이 솔루션이 없었다면 곧 Switch에 출시할 수 없었을 것입니다." - 맥스 맥과이어, 언노운 월드 테크니컬 디렉터
Unity 플랫폼은 프로젝트의 코드와 에셋을 정리하여 성능을 극대화할 수 있는 다양한 툴을 제공합니다. 예를 들어 Addressables 패키지는 콘텐츠 패키지 생성 및 배포를 간소화하여 에셋 관리 오버헤드를 처리합니다. 또한 ScriptableObject는 수없이 많은 데이터가 제작 과정에서 바뀔 수도 있는 프로젝트에 효과적입니다.

Unity 버전 관리 활용
"Plastic은 우리에게 그동안 익숙했던 방법보다 훨씬 세분화되고 효과적으로 브랜치 모델을 설정하는 방법을 알려 주었습니다. 구문 분석과 탐색이 쉽고, 사람들이 파괴적이지 않은 방식으로 프로젝트를 뛰어넘을 수 있습니다." - 살림 다부스, KO_OP 스튜디오 디렉터
Plastic SCM은 Unity 게임 개발에 권장되는 버전 관리 시스템으로, 대용량 바이너리 파일을 다룰 때 최상의 환경, 빠른 워크플로, 팀 내 코더가 아닌 개발자를 위한 간소화된 인터페이스를 제공합니다. 에디터 내 통합 기능은 Perforce에서도 사용할 수 있으며, Git과 같은 다른 많은 솔루션을 선택할 수도 있습니다.

에디터 워크플로 커스터마이즈
"Unity를 통해 아티스트들은 프로그래머에 대한 의존성을 줄이고 더욱 자유롭게 작업할 수 있게 되었습니다. 이전 엔진에서는 시각적 통합의 많은 부분에서 프로그래머가 필요했는데, 이제는 아티스트가 자체적으로 더 많은 작업을 할 수 있습니다. 프로그래머에게 더 이상 왼쪽으로 2픽셀을 이동하거나 그런 사소한 일을 해달라는 요청을 받지 않는다는 것을 알게 되었습니다." - 캐서린 바보, Coretech 이사, 루디아
Unity 프로그래머들은 코드를 통해 값과 에셋을 조정하는 데 제한 없이 오히려 에디터 인터페이스를 손쉽게 편집할 수 있기 때문에 아티스트와 디자이너가 엔진에서 직접 게임플레이를 미세 조정하고 씬을 빌드할 수 있습니다. 디자이너가 임의 동작을 비활성화하려 하면 코드를 다시 작성할 필요 없이 단순히 체크박스에서 선택을 해제하면 됩니다.

다수의 플랫폼에 적합한 빌드
"아레나 오브 발러를 통해 여러 국가에서 다양한 하드웨어 구성을 지원하고 있으며, Unity를 사용하면 모든 국가에서 기대하는 일관성을 훨씬 쉽게 얻을 수 있습니다." - 멜로우 유, 테크니컬 디렉터, 텐센트 게임즈
Unity는 주요 플랫폼 업체와 빠짐없이 긴밀한 파트너십을 유지하고 있기 때문에 최신 디바이스 릴리스를 유지해야 하는 번거로운 없이 20가지가 넘는 배포 옵션을 이용해 성능을 극대화할 수 있습니다. Unity 입력 시스템은 플랫폼 배포 옵션과 디바이스 전반에서 한 곳에서 바로 컨트롤을 설정할 수 있도록 도와줍니다.

성능 및 품질 최적화
훌륭한 게임을 디자인했다면 Unity가 빠른 출시와 안정화를 지원할 수 있습니다. Unity 에디터에는 다양한 프로파일링 및 최적화 툴이 포함되어 있어서 원하는 플랫폼에 따라 사용할 수 있는 리소스를 최대한 많이 확보하는 데 유용합니다.
Unity 프로파일러는 애플리케이션에 대한 성능 정보를 제공하며, 메모리 프로파일러는 메모리 사용량을 줄이는 데 도움을 줍니다. Unity 테스트 프레임워크를 사용하면 자동화된 테스트를 생성하여 코드가 의도한 대로 실행되는지 확인할 수 있습니다. 백트레이스는 크로스 플랫폼 크래시 및 예외 관리의 모든 실무 작업을 대신하므로 게임 출시에 집중할 수 있습니다.
자료실

C++ 개발자를 위한 Unity 프로그래밍
C# 입문자라면 이 가이드가 .NET 프레임워크를 이용해 관리형 환경의 편의성을 경험하는 데 유용한 리소스가 될 것입니다.

모바일 게임 성능 최적화
유니티 엔지니어들은 최고의 모바일 스튜디오와 협력하여 플레이어 경험을 개선합니다. 이 무료 전자책에는 실제 상황에서 게임 성능을 높이는 데 유용한 팁들이 75가지 넘게 자세히 설명되어 있습니다.

Unity의 .NET 개요
Unity는 오픈소스 .NET 플랫폼을 사용하기 때문에 게임을 실행할 수 있는 하드웨어 구성이 매우 광범위합니다. 이 기술 자료에서 스크립팅 백엔드, .NET 시스템 라이브러리, 베스트 프랙티스에 대해 자세히 알아보세요.
새로운 기능

Unity 2021 LTS 프로그래밍
코딩 경험을 간소화하고 원활한 개발을 지원하는 내부적인 개선이 이뤄진 최신 릴리스를 활용해 최적화된 고성능 게임을 만드세요.

비하인드 스토리: 더욱 빨라진 워크플로
에셋 임포트부터 플레이 가능한 게임 빌드 및 배포에 이르기까지 제작의 전 과정에서 빠르게 반복 작업을 수행할 수 있도록 Unity 에디터의 핵심을 최적화한 방법을 알아보세요.

버스트 1.7의 새로운 기능
버스트는 IL/.NET 바이트 코드를 플랫폼 형식으로 최적화하여 네이티브 코드로 변환하는 컴파일러입니다. 최신 버전의 버스트 패키지에서는 반복 시간과 버스트 인스펙터가 모두 개선되었습니다.
