Google Play 게임즈 PC SDK를 Unity와 통합

프로젝트를 안내합니다. SDK 다운로드부터 초기화 및 빌드 구성까지의 단계를 다룹니다. keywords_public: Google Play 게임즈 PC, Unity, SDK 통합, 네이티브 PC, 게임 개발, IL2CPP, 매니페스트, Play 게임즈 PC Unity SDK

이 가이드에서는 Google Play 게임즈 PC SDK를 Unity 프로젝트에 통합하는 단계별 안내를 제공합니다.

1단계: SDK 다운로드

다운로드 링크를 사용하여 최신 버전의 Unity 패키지를 다운로드합니다.

다운로드: Play 게임즈 PC Unity SDK

2단계: 패키지 가져오기

SDK는 Unity Package Manager (UPM)와 호환되는 tar 파일로 배포됩니다. 자세한 내용은 로컬 tar 파일에서 UPM 패키지 설치를 참고하세요.

3단계: 빌드 설정 구성

네이티브 라이브러리가 올바르게 로드되는지 확인하려면 IL2CPP 스크립팅 백엔드를 사용하고 올바른 아키텍처를 타겟팅하도록 프로젝트를 구성해야 합니다.

  1. 플랫폼이 Windows빌드 프로필을 만듭니다.

  2. 플랫폼 설정을 Windows로 선택합니다. 아키텍처의 경우 다음 옵션을 사용합니다.

    • Intel 64비트 (권장)
    • Intel 32비트

    참고: PC용 Google Play 게임즈 플랫폼은 64비트 환경에서 실행됩니다. 게임을 32비트 (x86) 또는 64비트 (x64)로 빌드할 수 있습니다.

  3. Scripting Backend(스크립팅 백엔드)를 IL2CPP로 설정합니다. 자세한 내용은 IL2CPP로 프로젝트 빌드를 참고하세요.

    • API 호환성 등급.NET Standard 2.0(.NET Framework)으로 설정합니다.

4단계: 애플리케이션 매니페스트 만들기

게임에서 SDK를 사용하려면 먼저 Play Console에서 소유권을 주장한 Play 패키지 이름과 게임 실행 파일을 연결해야 합니다. 게임의 실행 파일과 동일한 디렉터리에 manifest.xml 파일을 추가하면 됩니다.

참고: 이 단계는 수동으로 수행해야 합니다.

  1. 게임 실행 파일 빌드하려면 File > Build and Run을 선택하거나 Ctrl+B을 클릭합니다.
  2. 텍스트 편집기를 열고 manifest.xml이라는 새 파일을 만듭니다.
  3. 다음 XML 코드를 복사하여 파일에 붙여넣습니다.

    <?xml version="1.0" encoding="utf-8"?>
    <?Manifest version="1">
       <?Application>
         <?PackageName>com.example.package<?/PackageName>
       <?/Application>
    <?/Manifest>

  4. 파일을 manifest.xml로 저장합니다.

  5. 이 파일을 빌드된 게임 실행 파일과 동일한 폴더로 이동합니다.

    예: 게임이 Builds/MyGame.exe에 있는 경우 매니페스트는 Builds/manifest.xml에 있어야 합니다.

참고: 게임 실행 파일을 디지털 서명하거나 Google Play 게임즈에서 실행하지 않고 Unity Editor에서 개발하는 동안 PC SDK를 사용하려는 경우 추가 매니페스트 구성 단계는 개발자 모드 설정 가이드를 참고하세요.

5단계: SDK 초기화

결제 또는 무결성과 같은 기능에 액세스하기 전에 SDK를 초기화해야 합니다. PlayPcSdkFactory를 사용하여 초기화 핸들러를 만들고 연결을 시작합니다.

새 C# 스크립트(예: SdkInitialization.cs)를 만들고 다음 코드를 추가합니다.

using UnityEngine;
using System;
using System.Threading.Tasks;
// Import the SDK namespaces
using PlayPcSdkManaged.Initialization;
using PlayPcSdkManaged.Unity;

public class GooglePlayPCSDKInit : MonoBehaviour
{
    // Prevent double-initialization if this script is reloaded
    private static bool _isInitialized = false;

    private void Start()
    {
        // Use the "Safe Runner" pattern to fire the async method
        _ = InitializeSdkAsync();
    }

    private async Task InitializeSdkAsync()
    {
        if (_isInitialized)
        {
            Debug.LogWarning("Google Play PC SDK is already initialized. Skipping.");
            return;
        }

        try
        {
            Debug.Log("Initializing Google Play PC SDK...");

            // 1. Get the Unity-specific initialization handler from the factory
            var initHandler = PlayPcSdkFactory.InitializationHandler;

            // 2. Call InitializeAsync to start the connection
            var result = await GooglePlayInitialization.InitializeAsync(initHandler);

            // 3. Check the result
            if (result.IsOk)
            {
                _isInitialized = true;
                Debug.Log("<color=green>Google Play PC SDK Initialized Successfully!</color>");
                // You can now create BillingClient or IntegrityClient instances
            }
            else
            {
                Debug.LogError($"<color=red>Initialization Failed!</color>");
                Debug.LogError($"Error Code: {result.Code}");
                Debug.LogError($"Message: {result.ErrorMessage}");
            }
        }
        catch (Exception ex)
        {
            // Catch unexpected crashes or task failures
            Debug.LogError($"Exception during initialization: {ex.Message}");
            Debug.LogException(ex);
        }
    }
}

이 스크립트를 첫 번째 장면의 GameObject에 연결합니다. 게임을 실행할 때 콘솔에서 'SDK가 성공적으로 초기화되었습니다' 메시지를 확인합니다.

6단계: PC 네이티브 게임 설치 시 자동 재생 사용 설정

PC용 Google Play Games (GPG)를 사용하면 개발자가 '자동 플레이' 기능을 사용 설정할 수 있습니다. 이 기능은 설치 프로세스가 완료된 후 게임을 자동으로 즉시 실행합니다. 이 기능을 사용하면 GPG 생태계 내에서 완전히 인증된 플레이어를 게임으로 직접 전환하여 원활한 사용자 환경을 제공할 수 있습니다.

작동 방식

이 기능을 사용 설정하면 GPG는 명령줄 인수를 통해 서드 파티 (3P) 설치 프로그램 프로세스에 GPG 세션 토큰을 전달합니다. 그러면 설치 프로그램이 이 토큰을 추출하고 인증된 컨텍스트에서 게임 실행 파일을 실행하는 데 사용해야 합니다.

기본 요건

이 기능을 사용하려면 서드 파티 설치 프로그램이 명령줄 인수를 처리할 수 있어야 합니다.

구현 단계

  1. 게시 구성에서 자동 재생 사용 설정

    이 기능을 선택하려면 play_publishing_config.xml<installer> 요소에 acceptsCommandLineArguments 속성을 추가하세요.

    manifest.xml 콘텐츠 예시:

    <installer requiresElevation="true" acceptsCommandLineArguments="true">
      <path>path/to/installer.exe</path>
      <installation-path-registry-location>
        <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
        <value-name>InstallPath</value-name>
      </installation-path-registry-location>
    </installer>
    
    • 속성: acceptsCommandLineArguments
    • 유형: Boolean
    • 기본값: false
    • 동작: true로 설정하면 GPG가 설치 프로그램을 실행할 때 세션 토큰을 명령줄 인수에 추가합니다.
  2. 설치 프로그램에서 세션 토큰 처리

    GPG 클라이언트에 의해 설치 프로그램이 실행되면 세션 토큰을 명령줄 인수로 받습니다.

    • 인수 형식: --g_session_token=<TOKEN>

    해야 할 일:

    • 추출: 설치 프로그램은 명령줄 인수를 파싱하여 토큰 문자열을 검색해야 합니다.
    • 전파: 설치 흐름에 보조 런처나 게임 프로세스 실행이 포함되는 경우 설치 프로그램은 SDK를 사용하는 최종 게임 프로세스에 세션 토큰을 안전하게 전달해야 합니다.
    • 실행: 제공된 세션 토큰을 사용하여 게임 실행 파일을 시작합니다. 이렇게 하면 인증된 GPG 컨텍스트 내에서 게임이 실행됩니다. 그렇지 않으면 InitializeSDK가 실패하고 플레이어가 게임을 다시 시작해야 합니다.
  3. 오류 처리 및 대체

  • 토큰 가져오기: 어떤 이유로든 GPG가 세션 토큰을 생성하거나 전달할 수 없는 경우 (예: 토큰 생성 실패) 설치 프로세스가 계속 진행됩니다. 하지만 설치 프로그램은 --g_session_token 인수가 없이 실행됩니다.
  • 강력함: 세션 토큰이 없는 시나리오를 처리하도록 설치 프로그램을 설계해야 합니다. 이러한 경우 설치 프로그램은 표준 설치를 진행해야 합니다. InitializeSDK가 어차피 실패하므로 자동 게임 실행을 트리거해서는 안 됩니다.
  • 설치 프로그램 오류: 설치 프로그램과 설치 프로그램이 시작하는 게임 실행 시퀀스의 안정성과 오류 처리는 개발자의 책임입니다. GPG는 설치 프로그램이 실행된 후 설치 프로그램 내에서 발생하는 프로세스를 제어할 수 없습니다.