유니티 엔진/유니티 엔진의 구성

유니티 엔진의 구성 - 48) Game Override

monstro 2026. 6. 12. 14:59
728x90
반응형

- 개요

Game Override는 모든 유저에게 동일한 값을 주는 것이 아닌,

특정 Audience(특정 기준에 따라 분류한 유저 그룹)별로 서로 다른 게임 환경 또는 을 제공하는 것을 의미한다

 

- 코드 구성

public class Test : MonoBehaviour
{
    private const string PLAYER_SPEED = "playerSpeed";
    private const string SCORE = "Score";

    public struct UserAttributes
    {
        public bool isBeginner;
    }

    public struct AppAttributes
    {
        public float version;
    }

    private async void Awake()
    {
        await UnityServices.InitializeAsync();

        await AuthenticationService.Instance.SignInAnonymouslyAsync();

        RuntimeConfig runtimeConfig = await RemoteConfigService.Instance.FetchConfigsAsync
        (
            new UserAttributes
            {
                isBeginner = true,
            },
            new AppAttributes
            { 
                version = 1.0f,
            }
        );

        Debug.Log("playerSpeed : " + runtimeConfig.GetFloat(PLAYER_SPEED));
        Debug.Log("score : " + runtimeConfig.GetInt(SCORE));
    }
}

 

이전에 사용한 코드를 위와 같이 수정한다

UserAttributes 구조체에 불리언 변수를 추가하였고, AppAttibutes 구초제에 실수 변수를 추가하였다

또, 서버에서 데이터 값을 반환하면서 두 구조체의 인스턴스를 생성하고 멤버변수의 값도 설정한다

 

- 사용절차

1) 첫 번째 단계

 

유니티 대시보드에 접속하여 Game Overrides를 선택한다

 

 

오른쪽 상단의 Create Game Override를 선택한다

 

2) 두 번째 단계

첫 번째 단계

 

생성할 Game Override의 이름과 상세설명을 작성한다

 

두 번째 단계

 

2번째 단계에서는 Audience를 설정한다

옵션은 2가지를 선택할 수 있다

  • Audiences 옵션 : 미리 제공된 사용자 그룹으로 목적에 맞게 선택 가능
  • JEXL 옵션 : 개발자가 정의한 구조체 속성이나 기본 제공되는 사용자 그룹을 조합하여 사용자 그룹 생성

 

사용자 그룹을 선택하면 하단의 Rollout Percentage 수치를 설정하여

타겟 사용자 그룹 중 몇 %에게 게임 환경이나 값을 적용할지 설정할 수 있다

 

두 번째 단계 - 실제 사용

 

실제 사용은 JEXL 옵션을 사용하여 생성한 2개의 구조체 속성을 사용하여 사용자 그룹을 설정하였다

 

두 번째 단계 - 실제 사용 (2)

 

사용자 그룹 비중은 위와 같이 100%로 설정한다

 

3) 세 번째 단계

 

사용자 그룹에 적용할 서비스를 선택한다

프로젝트에서는 Remote Config를 적용하도록 설정하였다

 

Config Overrides

 

초보자인 플레이어를 대상으로 하는 Config Overrides 생성하고 Score 변수의 값을 20으로 수정하여 적용한다

 

4) 네 번째 단계

 

네 번째 단계에서는 생성한 Game Override의 시작 + 종료 날짜를 지정하거나

여러 오버라이드가 충돌할 때를 대비한 우선순위를 지정할 수 있다

프로젝트에서는 위와 같이 기본값으로 설정한다

 

- 최종 실행 결과

 

생성한 Game Override에 대해우측 상단의 Enable을 선택해야 실제로 사용할 수 있다

 

 

프로젝트를 실행한 후에 로그를 확인해보면 10이 아닌 덮어씌워진 20이 출력되는 것을 확인할 수 있다

728x90
반응형