- 주제
>> 구글 클라우드 플랫폼(GCP) 설정
>> Firebase로 구글 로그인 지원 추가( + Firebase 무료 사용 범위)
>> 유니티 프로젝트에서 구글 로그인 구현
- 공부내용
유니티에서 무료로 구글 계정 로그인 시스템을 구현하면 사용자의 계정을 인증하고 데이터를 연동하는 데 활용할 수 있다. 이번 게시글에서는 유니티 프로젝트에서 구글 계정 로그인을 설정하고, 실행하기 위한 기본적인 환경 구축을 다룬다.
1. 구글 클라우드 플랫폼(GCP) 설정
구글 계정 로그인을 구현하려면 먼저 **구글 클라우드 플랫폼(GCP)**에서 OAuth 2.0 클라이언트를 설정해야 한다.
1-1. 프로젝트 생성
- Google Cloud Console로 이동해 로그인한다.
- 새 프로젝트를 생성한다.
- 프로젝트 이름을 입력한다.
- 위치는 기본값으로 둔다.
- 프로젝트 생성 버튼을 클릭한다.
1-2. OAuth 동의 화면 설정
- API 및 서비스 > OAuth 동의 화면으로 이동한다.
- 사용자 유형을 "외부"로 선택하고 만들기를 클릭한다.
- 애플리케이션 이름, 이메일 주소 등을 입력하고 저장한다.
1-3. OAuth 2.0 클라이언트 ID 생성
- API 및 서비스 > 사용자 인증 정보로 이동한다.
- 사용자 인증 정보 만들기 > OAuth 클라이언트 ID를 선택한다.
- 응용프로그램 유형을 "웹 애플리케이션"으로 선택한다.
- 승인된 리디렉션 URI에 https://localhost와 같은 값을 추가한다.
- 클라이언트 ID와 클라이언트 비밀번호를 생성해 저장한다.
2. Firebase로 구글 로그인 지원 추가
유니티에서 구글 로그인을 쉽게 사용하려면 Firebase SDK를 활용하는 것이 편리하다.
Firebase 무료 사용 범위(Spart 요금제)
- Authentication (인증)
- 이메일/비밀번호, Google, Facebook 등 다양한 인증 방법 제공
- 10,000명 사용자당 월 무료
- Firestore (Cloud Firestore 데이터베이스)
- 월 50,000회 읽기
- 월 50,000회 쓰기
- 월 1GB 스토리지
- Realtime Database
- 월 1GB 데이터베이스 저장소
- 월 50,000회 쓰기/읽기
- Cloud Functions
- 월 200만 호출
- 400,000GB/초 처리 시간 무료
- Hosting
- 월 1GB 저장소 및 10GB 전송량
- Cloud Storage
- 월 5GB 저장소
- 50,000회 읽기 및 50,000회 쓰기 요청
2-1. Firebase 프로젝트 설정
- Firebase Console로 이동해 로그인한다.
- 새 프로젝트를 생성하고 구글 로그인 기능을 활성화한다.
- Authentication > Sign-in Method로 이동한다.
- Google을 활성화하고 저장한다.
2-2. Firebase SDK 다운로드 및 설정
- Firebase Unity SDK를 다운로드한다.
- 유니티 프로젝트에 SDK 패키지를 추가한다.
- 다운로드한 .unitypackage 파일을 더블 클릭해 유니티에 추가한다.
2-3. Google Play Service Resolver 설정
Firebase SDK를 사용하면 Google Play Service Resolver가 포함되어 있다.
- Assets > External Dependency Manager > Android Resolver > Force Resolve를 클릭한다.
- 필요한 종속성을 자동으로 설치한다.
3. 유니티 프로젝트에서 구글 로그인 구현
3-1. Firebase 초기화
using Firebase;
using Firebase.Auth;
using UnityEngine;
public class FirebaseInit : MonoBehaviour
{
private FirebaseAuth auth;
private void Start()
{
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
FirebaseApp app = FirebaseApp.DefaultInstance;
auth = FirebaseAuth.DefaultInstance;
Debug.Log("Firebase Initialized");
});
}
}
3-2. 구글 로그인 메서드 추가
FirebaseAuth를 활용해 구글 로그인을 구현한다.
using Firebase.Auth;
using Google;
using UnityEngine;
using System.Collections.Generic;
using System.Threading.Tasks;
public class GoogleLogin : MonoBehaviour
{
private FirebaseAuth auth;
private GoogleSignInConfiguration googleConfig;
private void Start()
{
auth = FirebaseAuth.DefaultInstance;
// Google 로그인 설정
googleConfig = new GoogleSignInConfiguration
{
WebClientId = "your-web-client-id",
RequestEmail = true,
RequestIdToken = true
};
}
public void SignInWithGoogle()
{
GoogleSignIn.Configuration = googleConfig;
GoogleSignIn.DefaultInstance.SignIn().ContinueWith(OnGoogleSignIn);
}
private void OnGoogleSignIn(Task<GoogleSignInUser> task)
{
if (task.IsFaulted)
{
Debug.LogError("Google Sign-In Error: " + task.Exception.Message);
}
else if (task.IsCanceled)
{
Debug.Log("Google Sign-In Canceled");
}
else
{
Debug.Log("Google Sign-In Success");
FirebaseGoogleAuth(task.Result.IdToken);
}
}
private void FirebaseGoogleAuth(string idToken)
{
Credential credential = GoogleAuthProvider.GetCredential(idToken, null);
auth.SignInWithCredentialAsync(credential).ContinueWith(task =>
{
if (task.IsCanceled || task.IsFaulted)
{
Debug.LogError("Firebase Sign-In Failed");
}
else
{
Debug.Log("Firebase Sign-In Success: " + auth.CurrentUser.DisplayName);
}
});
}
}
이제 구글 로그인 기능이 유니티 프로젝트에 기본적으로 구현되었다.
다음 게시글에서는 구글 로그인 시스템을 실행하고 유저 데이터를 활용하는 방법을 살펴보자.
'유니티' 카테고리의 다른 글
Day 60 - Firebase를 활용해 사용자 게임 데이터 저장 (0) | 2024.12.19 |
---|---|
Day 59 - 유니티 구글 계정 로그인 시스템 실행(2부) (1) | 2024.12.15 |
Day 57 - Unity와 구글 시트 연동 유지 관리 (0) | 2024.12.13 |
Day 56 - Unity와 구글 시트 데이터 동기화 전략 (4) | 2024.12.13 |
Day 55 - Unity에서 구글 시트 데이터 수정 및 업데이트 (2) | 2024.12.12 |