Remote Config란?
Remote Config는 실시간으로 게임 내 설정을 변경할 수 있는 기능을 제공합니다. 이를 통해 코드를 다시 빌드하거나 앱 스토어에 업데이트하지 않고도 게임 내의 다양한 설정값을 쉽게 수정할 수 있습니다. 예를 들어, 게임 속 아이템 가격, 레벨 난이도, 광고 빈도 등을 실시간으로 변경할 수 있습니다.
왜 Remote Config를 사용해야 할까?
게임 개발 중 또는 출시 후, 플레이어 피드백이나 데이터 분석에 따라 게임을 즉각적으로 수정하고 싶은 경우가 많습니다. Remote Config는 이럴때 유용하게 쓰입니다. 개발자들이 앱을 다시 빌드하거나 배포하는 데 시간을 낭비하지 않고, 실시간으로 변경 사항을 적용할 수 있는 것이 큰 장점입니다.
설정 방법
1. Unity 프로젝트 준비
먼저 UGS와 연결된 Unity 프로젝트가 필요합니다. Unity Editor에서 Window > Package Manager로 이동해 Remote Config 패키지를 설치하세요.
2. Unity Cloud 설정하기
먼저 UGS와 연결된 Unity 프로젝트가 필요합니다. Unity Editor에서 Window > Package Manager로 이동해 Remote Config 패키지를 설치하세요.
3. Remote Config 대시보드에서 설정 값 추가
Unity Dashboard에서 Remote Config 탭을 열고 원하는 변수를 추가하세요. 예를 들어, gameDifficulty 같은 변수에 'easy', 'medium', 'hard'와 같은 값을 설정할 수 있습니다. 이를 통해 플레이어 세그먼트에 맞춰 다르게 적용할 수 있습니다.
이후 테스트로 진행할 변수를 하나 생성해줍니다.
변수 생성 완료 후 Publish를 눌러서 변수 사용 준비를 마칩니다.
코드 작성
using System.Threading.Tasks;
using Unity.Services.RemoteConfig;
using Unity.Services.Authentication;
using Unity.Services.Core;
using UnityEngine;
public class remoteconfig : MonoBehaviour
{
// 사용자 속성을 저장할 구조체 (현재 빈 상태로 정의됨)
public struct userAttributes { }
// 앱 속성을 저장할 구조체 (현재 빈 상태로 정의됨)
public struct appAttributes { }
// Start 메서드에서 Init 메서드 호출 (비동기 처리)
async void Start()
{
await Init();
}
// 원격 설정 초기화 및 인증 처리 메서드
async Task InitializeRemoteConfigAsync()
{
// Unity 서비스 초기화
await UnityServices.InitializeAsync();
// 원격 설정을 사용하려면 인증이 필요하므로, 익명 로그인을 시도
if (!AuthenticationService.Instance.IsSignedIn)
{
await AuthenticationService.Instance.SignInAnonymouslyAsync();
}
}
// 서비스 초기화 및 설정 데이터 가져오기 메서드
async Task Init()
{
// 인터넷 연결을 확인 후, 연결이 되어 있으면 원격 설정 및 인증 초기화
if (Utilities.CheckForInternetConnection())
{
await InitializeRemoteConfigAsync();
}
// 원격 설정 데이터 가져오기 완료 시 호출될 핸들러 등록
RemoteConfigService.Instance.FetchCompleted += ApplyRemoteSettings;
// 원격 설정 데이터를 서버에서 가져옴 (userAttributes, appAttributes 사용)
RemoteConfigService.Instance.FetchConfigs(new userAttributes(), new appAttributes());
}
// 서버에서 받은 원격 설정 데이터를 적용하는 메서드
void ApplyRemoteSettings(ConfigResponse configResponse)
{
// 서버에서 가져온 설정 데이터를 출력
Debug.Log("RemoteConfigService.Instance.appConfig fetched: " + RemoteConfigService.Instance.appConfig.GetInt("Test_Value2"));
}
}
테스트 결과
위 사진처럼 변수명, 변수값들을 정상적으로 가져올 수 있습니다.
마무리
Remote Config는 실시간으로 게임을 제어할 수 있는 매우 유용한 도구입니다. 변수값을 즉각적으로 조정하고, 다양한 A/B 테스트를 진행하며, 코드 수정 없이 손쉽게 게임의 다양한 부분을 조정할 수 있습니다.
https://www.youtube.com/watch?v=RL3-VY8runI
'Unity > Unity Cloud(UGS)' 카테고리의 다른 글
[Unity] UGS - Asset Manager (1) | 2024.10.26 |
---|---|
[Unity] UGS - Cloud Code (0) | 2024.10.25 |
[Unity] UGS - Cloud Save (0) | 2024.10.24 |
[Unity] UGS - Player Authentication (0) | 2024.10.15 |
[Unity] 유니티 클라우드 - 충돌 보고서(Cloud Diagnostics) (0) | 2024.05.09 |