728x90
- 주제
>> 구글 로그인 시스템 실행하기
>> 사용자 데이터 활용
>> 로그아웃 기능 추가
>> 주의사항(API 키 보호, 로그인 실패 처리)
- 공부내용
앞선 게시글에서 유니티에서 구글 계정 로그인 시스템을 구축하는 방법을 알아보았다.
이번에는 그 시스템을 실행하고 사용자 데이터를 활용하는 방법을 설명한다.
1. 구글 로그인 시스템 실행하기
구글 로그인 시스템이 제대로 작동하려면 Unity Editor와 빌드된 프로젝트에서 각각 실행 시 테스트가 필요하다.
실행 과정은 다음과 같다.
1-1. Unity Editor에서 실행
- Unity Editor에서 Play 모드를 활성화한다.
- Google 로그인 버튼을 클릭하여 로그인 시도.
- Debug 로그에서 로그인 성공 또는 실패 메시지를 확인.
1-2. 빌드된 프로젝트에서 실행
- Android, iOS 또는 Windows 빌드를 생성한다.
- 실제 디바이스에서 프로젝트를 실행한다.
- 로그인 프로세스를 테스트하고 오류가 없는지 확인한다.
2. 사용자 데이터 활용
사용자가 로그인에 성공하면 FirebaseAuth를 통해 사용자 데이터를 얻을 수 있다.
이를 활용해 게임 내에서 맞춤형 사용자 경험을 제공할 수 있다.
2-1. 로그인 성공 시 사용자 데이터 확인
아래 코드를 통해 로그인한 사용자 정보를 가져온다.
using Firebase.Auth;
using UnityEngine;
public class UserDataHandler : MonoBehaviour
{
private FirebaseAuth auth;
private void Start()
{
auth = FirebaseAuth.DefaultInstance;
}
public void DisplayUserInfo()
{
FirebaseUser user = auth.CurrentUser;
if (user != null)
{
string name = user.DisplayName;
string email = user.Email;
string photoUrl = user.PhotoUrl != null ? user.PhotoUrl.ToString() : "No Photo";
Debug.Log($"Name: {name}\nEmail: {email}\nPhoto URL: {photoUrl}");
}
else
{
Debug.Log("No user is logged in.");
}
}
}
2-2. 사용자 프로필 표시
로그인한 사용자 정보를 UI에 표시한다.
예를 들어, TextMeshPro를 활용해 사용자 이름과 이메일을 게임 화면에 띄운다.
using TMPro;
using Firebase.Auth;
using UnityEngine;
public class UserProfileUI : MonoBehaviour
{
public TextMeshProUGUI userNameText;
public TextMeshProUGUI userEmailText;
private FirebaseAuth auth;
private void Start()
{
auth = FirebaseAuth.DefaultInstance;
DisplayUserInfo();
}
private void DisplayUserInfo()
{
FirebaseUser user = auth.CurrentUser;
if (user != null)
{
userNameText.text = user.DisplayName;
userEmailText.text = user.Email;
}
else
{
userNameText.text = "Guest";
userEmailText.text = "Not Logged In";
}
}
}
3. 로그아웃 기능 추가
구글 로그인이 완료되었더라도 로그아웃 기능이 필요하다.
로그아웃을 통해 사용자 데이터를 초기화할 수 있다.
3-1. 로그아웃 구현
using Firebase.Auth;
using UnityEngine;
public class LogoutHandler : MonoBehaviour
{
private FirebaseAuth auth;
private void Start()
{
auth = FirebaseAuth.DefaultInstance;
}
public void Logout()
{
auth.SignOut();
Debug.Log("User logged out successfully.");
}
}
3-2. UI와 연결
- 유니티 UI 버튼을 생성한다.
- 버튼의 OnClick 이벤트에 LogoutHandler.Logout 메서드를 연결한다.
4. 주의사항
- API 키 보호:
- WebClient ID는 외부에 노출되지 않도록 주의해야 한다.
- 프로젝트에 추가된 키는 Git이나 다른 공유 저장소에 업로드하지 않는다.
- 로그인 실패 처리:
- 네트워크 문제나 OAuth 인증 오류 발생 시 사용자가 적절한 메시지를 확인할 수 있도록 예외 처리와 UI 피드백을 추가한다.
728x90
반응형
'유니티' 카테고리의 다른 글
Day 60 - Firebase를 활용해 사용자 게임 데이터 저장 (0) | 2024.12.19 |
---|---|
Day 58 - 유니티 구글 계정 로그인 시스템 구축(1부) (0) | 2024.12.14 |
Day 57 - Unity와 구글 시트 연동 유지 관리 (0) | 2024.12.13 |
Day 56 - Unity와 구글 시트 데이터 동기화 전략 (4) | 2024.12.13 |
Day 55 - Unity에서 구글 시트 데이터 수정 및 업데이트 (2) | 2024.12.12 |