Unity용 Google Play 게임즈 설정 및 로그인

이 문서에서는 Unity용 Google Play 게임즈 플러그인을 사용하도록 Unity 프로젝트를 설정하는 방법을 안내합니다. 플러그인을 설치하고 Unity 프로젝트를 구성하는 방법을 알아봅니다. 또한 이 문서에서는 로그인 서비스를 확인하는 방법도 설명합니다.

시작하기 전에

소프트웨어 요구사항을 검토합니다. Play Console을 설정하고 Unity Hub를 설치합니다.

플러그인 설치

Unity용 Google Play 게임즈 플러그인을 다운로드하고 설치하려면 Unity Hub에서 다음 단계를 따르세요.

  1. GitHub 저장소를 다운로드합니다.

  2. current-build 디렉터리에서 unitypackage 파일을 찾습니다. 이 파일은 플러그인을 나타냅니다. 예를 들어 다음과 유사합니다.

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Unity 프로젝트 설정

플레이어 설정에서 Unity 프로젝트를 설정하려면 다음 단계를 따르세요.

  1. 게임 프로젝트를 엽니다.

  2. Unity Hub에서 Assets > Import Package > Custom Package를 클릭하여 unitypackage 파일을 프로젝트의 애셋으로 가져옵니다.

  3. 현재 빌드 플랫폼이 Android로 설정되어 있는지 확인합니다.

    1. 기본 메뉴에서 File > Build Settings를 클릭합니다.

    2. Android를 선택하고 Switch Platform을 클릭합니다.

    3. Window > Google Play Games 아래에 새 메뉴 항목이 있습니다. 표시되지 않으면 Assets > Refresh를 클릭하여 애셋을 새로고침한 다음 빌드 플랫폼을 다시 설정해 봅니다.

  4. Unity Hub에서 File(파일) > Build Settings(빌드 설정) > Player Settings(플레이어 설정) > Other Settings(기타 설정)를 클릭합니다.

  5. 타겟 API 수준 상자에서 버전을 선택합니다.

  6. 스크립팅 백엔드 상자에 IL2CPP를 입력합니다.

  7. 타겟 아키텍처 상자에서 값을 선택합니다.

  8. 패키지 이름 package_name을 확인합니다.이 정보를 나중에 사용할 수 있습니다.

Unity 프로젝트의 플레이어 설정
Unity 프로젝트의 플레이어 설정입니다.

새 키 저장소 만들기

사용자 인증 정보를 확인하려면 키가 필요합니다. 다음 단계를 따르세요.

  1. Unity Hub에서 File(파일) > Build settings(빌드 설정) > Player settings(플레이어 설정)를 클릭합니다.
  2. 게시 설정 섹션에서 키 저장소 관리자를 클릭합니다.
    1. 키 저장소 관리자 창에서 키 저장소 > 새 만들기 > 어디서나를 클릭합니다.
    2. 폴더를 선택하고 키 저장소의 이름을 지정합니다.
    3. 비밀번호 상자에 비밀번호를 입력하고 확인합니다.
    4. 키 추가를 클릭합니다.

폴더 이름을 기록해 둡니다. 이 이름을 사용하여 Google Cloud에서 사용자 인증 정보를 만들 수 있습니다.

Play Console에서 Android 리소스 복사

Play Console에서 만드는 각 업적과 리더보드, 이벤트에는 Unity 프로젝트 설정 시 사용하는 Android 리소스가 포함됩니다.

게임의 Android 리소스를 가져오려면 다음 단계를 따르세요.

  1. Google Play Console에서 게임을 엽니다.

  2. Play 게임즈 서비스 - 구성 페이지 (성장 > Play 게임즈 서비스 > 설정 및 관리 > 구성)에서 리소스 가져오기를 클릭합니다.

  3. Resources 창에서 Android(XML) 탭을 클릭합니다.

  4. Android 리소스 (AndroidManifest.xml) 콘텐츠를 선택하여 복사합니다.

Unity 프로젝트에 Android 리소스 추가

Unity 프로젝트에 다음 Android 리소스를 추가합니다.

  1. Unity Hub에서 창 > Google Play 게임즈 > 설정 > Android 설정을 클릭합니다.

    • 상수를 저장할 디렉터리 필드에 상수 파일의 폴더 이름을 입력합니다.
    • 상수 클래스 이름 필드에 네임스페이스를 포함한 생성할 C# 클래스의 이름을 입력합니다.

      예를 들어 C# 클래스가 id.cs이고 Assets > myproject > scripts > id.cs에 있는 경우 상수 클래스 이름은 myproject.scripts.id일 수 있습니다.

    • 리소스 정의 필드에 Google Play Console에서 복사한 Android 리소스 데이터(AndroidManifest.xml 파일)를 붙여넣습니다.

    • 선택사항: 클라이언트 ID 필드에 연결된 웹 앱의 클라이언트 ID를 입력합니다.

      Google Cloud에서 게임의 클라이언트 ID를 가져오려면 클라이언트 ID 만들기를 참고하세요.

      게임용 웹 기반 백엔드가 있고 백엔드 서버를 통해 액세스 토큰으로 교환할 서버 인증 코드가 필요하거나, 게임 이외의 다른 API 호출을 위해 ID 토큰이 필요한 경우에만 이 클라이언트 ID가 필요합니다.

    • 설정을 클릭합니다. 그러면 클라이언트 ID로 게임이 구성되고 각 Android 리소스의 상수를 포함하는 C# 클래스가 생성됩니다.

  2. Unity Hub에서 창 > Google Play 게임즈 > 설정 > Nearby Connections 설정을 클릭합니다.

    • Nearby connection 서비스 ID 필드에 package_name를 입력합니다.

      Unity 프로젝트 설정에서 사용한 것과 동일한 package_name를 사용합니다.

    • 설정을 클릭합니다.

소셜 플랫폼 선택

Google Play 게임즈 서비스 플러그인은 Unity의 소셜 인터페이스를 구현합니다. 이를 통해 다른 플랫폼과 통합할 때 이미 그 인터페이스를 사용하는 게임과의 호환성을 유지할 수 있습니다. 하지만 일부는 Play 게임즈의 고유 기능이며, Unity에서 제공하는 표준 소셜 인터페이스의 확장 프로그램 형태로 제공됩니다.

표준 API 호출에는 ISocialPlatform 인터페이스 참조에 해당하는 Social.Active 객체를 통해 액세스할 수 있습니다. 비표준 Google Play 게임즈 서비스 확장 프로그램에 액세스하려면 Social.Active 객체를 추가 메서드를 사용할 수 있는 PlayGamesPlatform 클래스에 전송하면 됩니다.

기본 소셜 플랫폼을 재정의하지 않고 플러그인 사용

PlayGamesPlatform.Activate를 호출하면 Google Play 게임즈 서비스가 기본 소셜 플랫폼 구현이 됩니다. 즉, SocialSocial.Active의 메서드에 관한 정적 호출은 Google Play 게임즈 서비스 플러그인에 의해 실행됩니다. 이는 플러그인을 사용하는 대부분의 게임에서의 동작입니다.

하지만 어떤 이유로든 기본 구현의 액세스 가능성을 유지 (예: 업적 및 리더보드를 다른 소셜 플랫폼에 제출할 때 기본 구현 사용)하려는 경우, 기본 구현을 재정의하지 않고 Google Play 게임즈 서비스 플러그인을 사용할 수 있습니다. 다음 단계를 따르세요.

  1. PlayGamesPlatform.Activate를 호출하지 마세요.
  2. XyzSocial 클래스에서 호출해야 하는 메서드의 이름이라면 Social.Xyz를 호출하지 않습니다. 대신 PlayGamesPlatform.Instance.Xyz를 호출합니다.
  3. Google Play 게임즈 서비스와 상호작용할 때 Social.Active를 사용하지 않습니다. 대신 PlayGamesPlatform.Instance를 사용합니다.

그렇게 하면 두 개 이상의 소셜 플랫폼에 점수와 업적을 동시에 제출할 수도 있습니다.

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

로그인 서비스 확인

게임이 열리면 로그인 서비스를 사용하여 Play 게임즈 서비스로 연결이 자동으로 시도됩니다. 연결되면 게임에 로그인 메시지가 표시되고 Unity용 Google Play 게임즈 서비스 플러그인을 사용할 준비가 됩니다.

사용자가 기기에서 Google Play 게임즈 서비스를 사용한 적이 없는 경우 일회성 설정 화면으로 자동으로 안내되어 Play 게임즈 계정을 생성합니다.

스크립트의 Start 메서드에서 자동 로그인 시도 결과를 수신 대기하고, 인증 상태를 가져오고, Play 게임즈 서비스 기능을 중지(사용자가 로그인하지 않은 경우)합니다.

Unity 플러그인 버전이 v11 이전인 경우 로그인 기능을 사용할 수 없습니다.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

결과 코드는 로그인 실패 이유를 식별하는 데 사용할 수 있는 enum입니다.

Unity의 소셜 플랫폼을 사용하고 싶다면 다음 코드를 사용할 수도 있습니다.

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

Authenticate에서 성공적인 반환 값을 얻을 때까지는 Google Play 게임즈 서비스 API를 호출할 수 없습니다. 따라서 인증이 완료될 때까지 사용자가 게임 플레이를 시작할 수 없도록 콜백 호출까지 게임에 대기 화면이 표시되는 것이 좋습니다.

Play 앱 서명 사용

Google에서는 Play 앱 서명을 사용하여 앱의 서명 키를 관리하고 보호합니다. Play 앱 서명을 사용하여 최적화된 Android App Bundle(AAB) 파일 배포에 서명할 수 있습니다. Play 앱 서명은 Google의 보안 인프라에 앱 서명 키를 저장합니다. Play 앱 서명을 사용하려면 먼저 Unity Hub에서 AAB 파일을 만들고 다운로드해야 합니다. 그런 다음 AAB 파일을 Play Console에 업로드하고 내부 테스트 버전을 만들 수 있습니다.

AAB 파일 만들기

Unity Hub에서 AAB 파일을 만들려면 다음 단계를 따르세요.

  1. Unity Hub에서 File(파일) > Build settings(빌드 설정)를 클릭합니다.
  2. Build App Bundle ( Google Play )을 선택합니다.

    자세한 내용은 Android 빌드 설정 참조를 참고하세요.

  3. 빌드를 클릭합니다.

  4. Unity Hub에서 AAB 파일을 다운로드합니다.

내부 테스트 버전 만들기

Play Console에서 내부 테스트 버전을 만들고 테스터를 추가하려면 다음 단계를 따르세요.

  1. Google Play Console에서 게임을 선택합니다.
  2. 테스트 및 출시 페이지(테스트 > 내부 테스트)로 이동합니다.
  3. 업로드를 클릭하고 AAB 파일을 선택합니다.
  4. 출시 세부정보 필드에 이름을 입력합니다.
  5. 다음을 클릭하고 발표 세부정보를 검토합니다.
  6. 저장 및 출시를 클릭합니다.
  7. 테스터 탭에서 이메일 목록 만들기를 클릭하여 최대 100명의 테스터를 추가합니다.

    자세한 내용은 내부 테스트: 최대 100명의 테스터 관리하기를 참고하세요.

  8. 의견 URL 또는 이메일 주소에 의견을 제공할 의견 URL 또는 이메일 주소를 입력합니다.

  9. 저장을 클릭합니다.

앱 서명 사용자 인증 정보 확인

  1. Google Play Console에서 게임을 선택합니다.
  2. 테스트 및 출시 페이지(설정 > 앱 서명)로 이동합니다.
  3. 앱 서명 사용자 인증 정보를 확인합니다.

프로젝트 빌드 및 실행

이제 게임 프로젝트를 빌드하고 실행할 수 있습니다. 게임이 시작되면 자동 로그인 시도가 표시됩니다.

USB 디버깅이 사용 설정된 실제 Android 지원 기기 또는 개발된 프로젝트를 실행할 수 있는 에뮬레이터가 필요합니다.

서버 인증 코드 가져오기

현재 플레이어를 대신하여 백엔드 웹 서버에서 Google API에 액세스하려면 클라이언트 애플리케이션에서 인증 코드를 가져와 웹 서버 애플리케이션에 전달해야 합니다. 그러면 인증 코드를 액세스 토큰으로 교환하여 다양한 API를 호출할 수 있습니다. 워크플로에 관한 자세한 내용은 웹용 Google 계정으로 로그인을 참고하세요.

서버 측 액세스 코드를 가져오는 방법은 다음과 같습니다.

  1. Play Console에서 게임에 연결된 웹 애플리케이션의 웹 클라이언트 ID를 구성합니다.

  2. 서버 측 액세스 코드를 받도록 플레이어가 인증되면 PlayGamesPlatform.Instance.RequestServerSideAccess를 호출합니다.

  3. 이 코드를 서버 애플리케이션에 전달합니다.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

기능 설정 및 추가