Unity에서의 인증
이 튜토리얼은 Unity 프로젝트에서 Unity 인증을 설정하는 방법을 안내합니다. Unity 인증을 사용하면 Unity의 Identity 툴킷을 사용하여 게임에서 사용자를 관리하고 인증할 수 있습니다. 인증을 설정하고 프로젝트에 통합하고 로그인 기능을 구현하는 데 필요한 단계를 다룹니다.
필수 조건
- Unity 허브와 Unity 편집기가 설치되었습니다.
- Unity Unity 서비스가 활성화된 프로젝트입니다.
- Unity 계정 및 활성화된 프로젝트 ID.
1단계: Unity 대시보드에서 Unity 인증 설정
- Unity 대시보드에 로그인하세요.
- 프로젝트를 선택하거나 새로운 프로젝트를 만드세요.
- "Services" 섹션에서 인증로 이동합니다.
- 활성화 버튼을 클릭하여 인증을 활성화하세요.
- 사용자 속성, 로그인 방법, 액세스 제어 등 필요에 따라 인증 설정을 구성합니다.
2단계: Unity 인증 패키지 설치
프로젝트에서 Unity 인증을 사용하려면 적절한 패키지를 설치해야 합니다.
- Unity 프로젝트를 엽니다.
- 창 > 패키지 관리자로 이동합니다.
- 패키지 관리자에서 Authentication을 검색하세요.
- 설치을 클릭하여 프로젝트에 인증 패키지를 추가합니다.
3단계: 초기화 스크립트 설정
게임에서 인증을 사용하려면 런타임에 Unity 서비스와 인증을 초기화해야 합니다. C# 스크립트(예: AuthenticationManager.cs
)에 다음 코드를 추가하고 씬의 GameObject에 첨부합니다.
using UnityEngine;
using Unity.Services.Core;
using Unity.Services.Authentication;
using System.Threading.Tasks;
public class AuthenticationManager : MonoBehaviour
{
async void Start()
{
await InitializeUnityServicesAsync();
}
private async Task InitializeUnityServicesAsync()
{
try
{
await UnityServices.InitializeAsync();
Debug.Log("Unity Services initialized successfully.");
if (!AuthenticationService.Instance.IsSignedIn)
{
await SignInAnonymously();
}
}
catch (System.Exception e)
{
Debug.LogError($"Error initializing Unity Services: {e.Message}");
}
}
private async Task SignInAnonymously()
{
try
{
await AuthenticationService.Instance.SignInAnonymouslyAsync();
Debug.Log("Signed in anonymously.");
}
catch (System.Exception e)
{
Debug.LogError($"Error signing in anonymously: {e.Message}");
}
}
}
이 스크립트는 게임이 시작될 때 Unity 서비스를 초기화하고 사용자가 아직 로그인되어 있지 않으면 익명으로 사용자를 로그인시킵니다.
4단계: Unity 인증을 사용하여 로그인 구현
게임의 요구 사항에 따라 이메일이나 Google 로그인과 같은 특정 로그인 방법에 대한 옵션을 제공할 수도 있습니다. 아래는 Unity 인증을 사용하여 로그인을 구현하는 방법의 예입니다.
예: 이메일과 비밀번호로 로그인
using UnityEngine;
using Unity.Services.Authentication;
using System.Threading.Tasks;
public class AuthenticationManager : MonoBehaviour
{
async void Start()
{
await InitializeUnityServicesAsync();
}
private async Task InitializeUnityServicesAsync()
{
try
{
await UnityServices.InitializeAsync();
Debug.Log("Unity Services initialized successfully.");
}
catch (System.Exception e)
{
Debug.LogError($"Error initializing Unity Services: {e.Message}");
}
}
public async Task SignInWithEmailAsync(string email, string password)
{
try
{
await AuthenticationService.Instance.SignInWithEmailAndPasswordAsync(email, password);
Debug.Log("Signed in with email successfully.");
}
catch (System.Exception e)
{
Debug.LogError($"Error signing in with email: {e.Message}");
}
}
}
이 메서드를 호출하려면 사용자가 이메일과 비밀번호를 입력할 수 있는 UI 양식을 Unity에 만든 다음 UI 버튼의 onClick 이벤트에서 SignInWithEmailAsync
를 호출합니다.
5단계: 로그아웃
사용자 관리를 위해 로그아웃 기능도 구현할 수 있습니다. 방법은 다음과 같습니다.
public void SignOut()
{
AuthenticationService.Instance.SignOut();
Debug.Log("Signed out successfully.");
}
사용자를 게임에서 로그아웃할 때마다 이 메서드를 호출합니다.
결론
Unity 프로젝트에서 초기화, 익명 로그인, 이메일 로그인 및 로그아웃 기능을 포함하여 Unity 인증을 설정하는 방법을 다루었습니다. Unity 인증을 사용하면 사용자를 보다 효과적으로 관리하고 게임의 보안을 강화할 수 있습니다. 사용자 지정 로그인 공급자 또는 여러 인증 방법 연결과 같은 고급 설정의 경우 공식 Unity 문서를 참조하세요.