기술 자료

지원

Services

Services

주요 개념

Understand key concepts to use Unity Gaming Services effectively.
읽는 시간 1분최근 업데이트: 한 달 전

시작하기 전에 Unity Gaming Services의 기반이 되는 몇 가지 주요 개념을 잠시 살펴보겠습니다.

서버 측 게임 시스템

특히 멀티플레이어 게임과 같은 라이브 게임에서는 플레이어 데이터를 관리할 수 있는 단일 장소가 중요합니다. 각 플레이어의 디바이스에서 해당 플레이어의 데이터를 관리하는 대신, 모든 플레이어 디바이스와 통신하는 중앙 서버가 중요한 게임 결정을 처리합니다. 이는 플레이어가 부당한 이득을 얻거나, 구매나 노력으로 얻어야 할 리소스를 편법으로 획득하는 부정 행위 전략을 완화하는 데 도움이 될 수 있습니다. 마찬가지로, 라이브 이벤트와 경쟁 기능이 모든 플레이어에게 공정하게 제공되도록 하려면 게임 데이터와 결정을 클라우드에서 관리하는 것이 중요합니다. Unity Gaming Services를 통해 다음을 수행할 수 있습니다.
  • Cloud Save 서비스를 사용하여 플레이어 데이터를 안전하게 클라우드에 저장합니다.
  • Economy와 Cloud Code 서비스를 사용하여 클라우드에서 경제와 게임 로직을 실행합니다.

비동기 코드

다른 온라인 서비스와 마찬가지로 Unity Gaming Services도 모두 비동기 작업을 기반으로 합니다. 즉, 클라이언트가 서비스 요청에 대한 응답을 기다리느라 게임이 중단되지는 않습니다. 게임플레이, UI, 애니메이션은 서비스 요청이 백그라운드에서 처리되는 동안 계속 진행될 수 있습니다. 이를 위해 Unity Gaming Services는 TAP(작업 기반 비동기 패턴)를 사용하여 C#으로 비동기 코드를 비교적 쉽게 작성할 수 있도록 지원합니다. 이미 Unity에서 코드를 작성하는 데 익숙한 경우 비동기 로직에 사용할 수 있는 코루틴을 이해하고 있을 것입니다. 코루틴은 여전히 전경에서 진행 중인 일을 제어하는 데 유용하지만, 비동기 작업은 웹 요청과 같이 백그라운드에서 발생하는 일을 관리하는 데 보다 적합합니다. UGS 기술 자료 전반에서
async
await
키워드를 자주 접하게 될 것입니다.
async
메서드는 진행 중인 프로세스를 나타내는
Task
를 반환합니다.
await
키워드는 호출자에게 호출된
async
메서드가 완료될 때까지 기다렸다가 계속 진행하라고 지시합니다.
예를 들어, 플레이어의 통화 데이터를 업데이트하려면 다음과 같은 코드가 사용될 수 있습니다.
async Task RefreshPlayerWallet(){ // Use an animation to show the player something is happening. waitIndicator.gameObject.SetActive(true); // Download this player's currency statuses from UGS; // this asynchronous task won't interrupt the animation. var newWalletData = await EconomyManager.RefreshWalletData(); // Once you have the downloaded data, update your UI. walletView.Refresh(newWalletData); waitIndicator.gameObject.SetActive(false);}
자세한 내용은 Microsoft의 비동기 프로그래밍 개념 가이드를 참고하십시오.

SDK API와 REST API 비교

Unity Gaming Services에 프로그래머틱 방식으로 액세스하는 방법에는 두 가지가 있습니다.
  • SDK(클라이언트) API
  • REST(웹) API

클라이언트 API

Unity 게임 엔진과 함께 Unity Gaming Services를 사용하려는 경우, Unity는 프로젝트에 클라이언트 API를 사용할 것을 권장합니다. 클라이언트 API는 Unity 에디터의 컨텍스트 내에서 지원되는 언어(C#)로 Unity Gaming Services API에 쉽게 액세스할 수 있도록 합니다. Unity 개발자는 Unity 패키지를 통해 모든 서비스의 기능에 액세스할 수 있습니다. 이러한 SDK는 Unity 프로젝트에 직접 설치되며 필요한 모든 C# API 라이브러리를 제공합니다. 클라이언트 API는 워크플로를 간소화하고 작성해야 하는 코드 양을 크게 줄여 줍니다.

웹 API

Unity를 사용하지 않는 개발자는 웹 엔드포인트 또는 REST API를 통해 Unity Gaming Services API에 액세스할 수 있습니다. REST API를 사용하면 유연성이 향상되며 원하는 언어와 게임 엔진을 사용해 워크플로를 자동화할 수 있습니다.

온보딩 영향

SDK 또는 REST API 중 무엇을 사용하든 Unity Dashboard에서 프로젝트를 생성해야 합니다. 단, REST API를 사용하는 경우에는 시작 가이드의 다음 단계가 약간 다를 수 있습니다. 이러한 고객들은 온보딩을 위해 서비스 API 기술 자료 웹사이트를 방문할 것을 권장합니다.