본문 바로가기

진리는어디에

[Unity] 헤드리스 모드(Headless mode)

헤드리스 모드?

간단히 말하면 유니티에서 그래픽적인 요소를 제외하고 실행 하겠다는 의미다. 아무것도 보이지 않는 유니티를 어디다 쓸까?

유니티로 서버를 만든다고 가정하자. 클라이언트가 사용자들에게 화려한 애니메이션과 이펙트들을 보여주는데 집중하는 대신 서버는 사용자의의 요청과 각종 로직들을 처리하는데 집중한다. 서버에겐 간단한 텍스트를 출력 할 수 있다면 이미 그래픽적인 요소는 다 갖추었다고 할 수 있다.

헤드리스 모드는 주로 클라이언트가 아닌 서버를 만드는데 많이 사용된다.

어떻게 만드나?

타겟 플랫폼을 스탠드 얼론으로 맞춰 놓고 'Server Build'에 체크한다.

'Build' 버튼을 클릭하여 빌드를 완료 한 후 커맨드 창에서 빌드 결과 파일을 실행 한다. 이때 실행 옵션에 '-batchMode' 입력하면 하면 그래픽적인 요소를 제외한 단순 로직만 구동하는 headless 모드로 유니티를 사용 할 수 있다.

NOTE : Server Build
커맨드 라인 옵션을 사용하지 않고도 시각적 요소(헤드리스)가 없는 서버 사용을 위한 플레이어를 빌드할 수 있습니다. 활성화하면 Unity가 UNITY_SERVER 정의를 사용하여 관리되는 스크립트를 빌드하며, 이를 통해 애플리케이션에 대한 서버 전용 코드를 작성할 수 있습니다. 또한 Windows 버전에 콘솔 앱으로 빌드하여 stdin 및 stdout 에 대한 액세스를 허용할 수도 있습니다(기본적으로 Unity 로그는 stdout으로 이동함).

from : https://docs.unity3d.com/kr/2018.4/Manual/BuildSettings.html

Input : 커맨드 창에서 아래와 같이 실행 한다.

※ UnityServer.exe는 예시일 뿐이다. 각자의 프로젝트명으로 빌드된 바이너리를 실행하도록 한다.

>UnityServer.exe -batchMode

NOTE - 만일 Server Build 옵션을 활성화 시킨 상태로 빌드를 하였다면 "-batchMode" 커맨드 라인 옵션을 사용하지 않아도 헤드리스 모드로 동작하기 때문에 단순히 UnityServer.exe만 실행 해도 된다.

Output :

부록 1. 예제 소스

 

GitHub - ChoiIngon/blog

Contribute to ChoiIngon/blog development by creating an account on GitHub.

github.com

부록 2. 같이 읽으면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!