• 티스토리 홈
  • 프로필사진
    개양반
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
개양반
  • 프로필사진
    개양반
    • Everybody Happyvirus (87)
      • Unity DOTS (19)
        • ECS Sample Projtect (8)
        • Unity.Physics (1)
        • TIP (9)
      • Unity Assets 추천 (6)
        • BG Database (5)
        • I2 Localization - 현지화 (1)
      • Unity 자습서 (15)
        • Addressable (4)
        • 유니티 + 파이어베이스 (0)
        • GamingServices (10)
      • 주식 이야기 (4)
        • 회사 소개 (2)
        • 회사 정보 (1)
        • 실적 발표 (0)
      • 일상 생활 (9)
        • 도서리뷰 (2)
        • 제품리뷰 (6)
      • 게임일기 (2)
        • 리그오브레전드 (2)
      • 게임소개 (4)
      • 게임리뷰 (7)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Gamingservices - ABTestSample #4 재화 만들기
        2023년 02월 25일
        • 개양반
        • 작성자
        • 2023.02.25.:58

        1. 오늘 알아볼 내용

        유니티 대쉬보드에서 재화를 만드는 방법에 다룰 예정입니다. 만들 재화는 Coin입니다.

         

        2. 사이트 접속

        아래의 링크로 유니티 대쉬보드로 이동 후 로그인을 합니다.

        https://dashboard.unity3d.com/gaming/login?redirectTo=Lw==

         

        Unity Gaming Services

         

        dashboard.unity3d.com

         

        3. 리소스 생성하기

        LiveOps > Economy > Configuration > Add Resource를 클릭합니다.

         

        3-1 Type 설정

        Economy의 리소스는 4개의 타입이 존재합니다.

        이번에는 재화(Currency)를 만들 예정이니 Currency를 눌러줍니다. 

        Resource name에 Coin를 입력합니다.

        What are your Currency values?는 계정 생성시에 지급하는 금액입니다. 100을 입력하면 신규로 생성한 계정에 100Coin이 자동으로 지급됩니다.

        Max balance는 최대 보유 개수입니다. 0 또는 Unlimited를 체크하면 무제한이 됩니다. 

         

        JSON 타입으로 사용자 임의의 데이터를 추가할 수도 있습니다.

        // 사용자 정의 데이터 예제코드
        {
        	"damage": 5,
        	"strength": 10,
        	"durability": 20,
        	"assetPath": "/assets/sword.png"
        }

         

        Create 버튼을 누르면 Coin이 Configration에 생성됩니다.

         

        Publish를 눌르면 추가된 Coin이 적용됩니다.

         

        4. Economy  구성요소 새로고침

        계정이 생성되면 100Coin을 지급하는 재화를 만들었습니다. 재화가 계성 생성시 지급되는지 확인하려면 로그인이 완료된 후 Economy 구성요소를 새로 고침하는 기능을 구현해야 합니다.

        4-1 스크립트 작성

        4-1-1 EconomyManager.cs

        Use Case Samples\AB Test Level Difficulty\Scripts 폴더에 EconomyManager.cs 파일을 만듭니다.

        using System;
        using System.Threading.Tasks;
        using Unity.Services.Economy;
        using Unity.Services.Economy.Model;
        using UnityEngine;
        
        namespace Unity.Services.Samples.ABTestLevelDifficulty
        {
            public class EconomyManager : MonoBehaviour
            {
                // 테스트하기 쉽게 static으로
                public static EconomyManager instance { get; private set; }
        
                void Awake()
                {
                    if (instance != null && instance != this)
                    {
                        Destroy(this);
                    }
                    else
                    {
                        instance = this;
                    }
                }
            }
        }

         

        EconomyManager.cs에 Economy Configration을 새로고침하는 코드를 추가합니다.

                // EconomyManager.cs
                
                public async Task RefreshEconomyConfiguration()
                {
                    await EconomyService.Instance.Configuration.GetCurrenciesAsync();
                }

         

        4-1-2 ABTestLevelDifficultySceneManager.cs 수정

        로그인이 완료되면 경제 구성 새로고침하도록 만듭니다.

        ABTestLevelDifficultySceneManager 클래스에 LoadDataFromServices()를 추가합니다.

                // ABTestLevelDifficultySceneManager.cs
        
                async Task LoadDataFromServices()
                {
                    // 경제 구성요소 새로고침 요청
                    await EconomyManager.instance.RefreshEconomyConfiguration();
                    if (this == null) return;
                }

         

        다음은 로그인이 완료된 뒤에 경게 구성요소를 새로고침 하는 코드를 추가합니다. 경제 구성요소 새로고침은 로그인 이후 꼭 호출해야 합니다.

        ABTestLevelDifficultySceneManager 클래스의 InitializeServices()를 수정합니다.

                // ABTestLevelDifficultySceneManager.cs
                
                async Task InitializeServices()
                {
                    // -- 초기화 코드 생략
        
                    // -- 익명로그인 코드 생략
                    
                    // 로그인이 완료되면 데이터를 로드한다.
                    await LoadDataFromServices();
                    if (this == null) return;
        
                    Debug.Log("Initialization and signin complete.");
                }

         

        로그아웃 후 새로운 계정을 만들때도 경제 구성 요소를 새로고침 해야 합니다.

        ABTestLevelDifficultySceneManager 클래스의 OnProceedButtonPressed()를 수정합니다.

                // ABTestLevelDifficultySceneManager.cs
        
        
                public async void OnProceedButtonPressed()
                {
                    try
                    {
                        // -- 로그아웃 코드 생략
                        // -- 익명 로그인 코드 생략
        
                        if (this == null) return;
                        await LoadDataFromServices();
        
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
                }

         

        4-2 스크립트 연결

        ABTestLevelDifficultySample 오브젝트에 EconomyManager.cs를 추가합니다.

         

        4-3 테스트하기

        재생 버튼을 누른 뒤 Sign In As New Player를 눌러 새로운 계정을 만듭니다. 

         

        3~5분 후에 유니티 대쉬보드에서 위에서 만든 계정에 100Coin이 지급되었는지 확인합니다. (바로 갱신되지 않음)

         

        신규 계정에 100Coin이 지급되었는지 빠르게 확인하고 싶은 분은 아래의 코드로 유니티 콘솔창에서 확인할 수 있습니다.

        // 로그인 이후 아무 곳에 넣어서 테스트 해본다.
        
        string currencyID = "COIN";
        CurrencyDefinition goldCurrencyDefinition = await EconomyService.Instance.Configuration.GetCurrencyAsync(currencyID);
        PlayerBalance playersGoldBarBalance = await goldCurrencyDefinition.GetPlayerBalanceAsync();
        Debug.Log(playersGoldBarBalance.balance);

         

        오늘은 여기까지!

        제 블로그가 만족스럽다면 커피 한잔 값으로 후원을 해주실 수 있어요!

        저작자표시 비영리 변경금지 (새창열림)

        'Unity 자습서 > GamingServices' 카테고리의 다른 글

        Gamingservices - ABTestSample #6 Remote Key 만들기  (0) 2023.02.28
        Gamingservices - ABTestSample #5 재화 표시  (0) 2023.02.26
        Gamingservices - ABTestSample #3 로그아웃과 신규 계정 생성  (0) 2023.02.25
        Gamingservices - ABTestSample #2 익명 로그인  (0) 2023.02.25
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바