ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PlayFab 설명및 Unity와의 연동 (1) - UI 만들기, 기초설정, PlayFab 계정만들기
    CS/졸업 프로젝트(Duk to Me) 2023. 9. 17. 21:43
    반응형

    https://mspoweruser.com/ko/microsoft-azure-playfab-party-price/

     

    ¶ PlayFab이란?

     Azure PlayFab(https://azure.microsoft.com/ko-kr/products/playfab)은 관리되는 게임 서비스, 실시간 분석 및 LiveOps를 사용하는 라이브 게임을 위한 완벽한 백 엔드 플랫폼이다. 이러한 기능은 수익을 높이고 플레이어 참여를 높이는 동시에 비용을 절감하는 데 도움이 될 수 있다.

     Playfab의 백 엔드 서비스는 게임과 함께 확장되고 플레이어의 참여, 유지, 수익 창출에 도움이 되는 비용 효율적인 개발 솔루션인 대규모 스튜디오와 소규모 스튜디오를 제공하여 게임 개발자의 진입 장벽을 낮춘다.

     

     현재 진행 중인 메타버스 게임 프로젝트의 데이터 처리를 위한 백 엔드 플랫폼으로 PlayFab을 선택하였다. PlayFab은 자체적으로 User 정보를 관리하는 시스템을 제공한다. 회원가입, 로그인 등을 위한 함수가 마련되어 있고, 계정별로 저장할 데이터 타입을 지정할 수 있다. 또한 User가 속한 그룹, 소유하고 있는 재화 데이터, 전체 User를 대상으로 하는 항목별 순위등을 쉽게 확인할 수 있는 Dashboard 기능을 제공한다.

     


     

    ¶ Unity와 연동하기

    PlayFab과 Unity의 연동을 시작하기 전에 Playfab을 이용할 Unity Project와 Game Scene을 만들어둔다.(실습에서는 'LoginScene_01' 이름으로 Game Scene 생성)

     

    ① Unity Asset Store에서 'SIMPLE FANTASY GUI'(https://assetstore.unity.com/packages/2d/gui/simple-fantasy-gui-99451)를 찾아 Unity에서 열어 Import 하기 (이때, Scenes와 PSD 폴더는 필요하지 않기 때문에 Uncheck) 잘 Import 되었다면 Assets 폴더에 'Simple Fantasy GUI' 폴더가 생성되어 있는것으로 확인 가능 

     

    ② 로그인, 회원가입, 비밀번호 찾기 기능이 구현될 UI를 Game Scene에서 'UICanvas'라는 이름의 Canvas를 생성하여 아래에 필요한 Panel들을 생성하고  Import한 Asset, 'Simple Fantasy GUI' 폴더의 'PNG' > 'LoginPanel' 경로 밑에 있는 이미지 파일들을 Panel의 Source Image에 적용하여 로그인, 회원가입, 비밀번호 찾기 UI(각각 'LoginAreaHolder', 'RegisterAreaHolder', 'ResetPasswordAreaHolder' 이름으로 생성)를 한 Scene에서 생성 (이때, 각각의 UI는 Inspector > Object 활성화/비활성화 CheckBox로 전환)

        *Tutorial Video: https://youtu.be/tug10P_Ff-Q

     

    ③ Asset 폴더 밑에 'LoginScene_01' Scene에 적용할 'LoginPagePlayfab' 이라는 이름의 C# Script를 생성하고 Code 작성

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using TMPro;
    
    public class LoginPagePlayfab : MonoBehaviour
    {
        [Header("Login")]
        [SerializeField] private TMP_InputField EmailLoginInput;
        [SerializeField] private TMP_InputField PasswordLoginput;
        [SerializeField] private GameObject LoginPage;
    
        [Header("Register")]
        [SerializeField] private TMP_InputField UsernameRegisterInput;
        [SerializeField] private TMP_InputField EmailRegisterInput;
        [SerializeField] private TMP_InputField PasswordRegisterInput;
        [SerializeField] private GameObject RegisterPage;
    
        [Header("Recovery")]
        [SerializeField] private TMP_InputField EmailRecoveryInput;
        [SerializeField] private GameObject RecoveryPage;
    
        private void Start()
        {
    
        }
    
        private void Update()
        {
    
        }
    }

     

    ④ 'LoginSystem'이라는 이름의 Game Object를 생성하여 'LoginPagePlayfab' Script를 적용시키고 Inspector창에 나타난 변수칸에 해당하는 알맞는 Component를 각각의 UI('LoginAreaHolder', 'RegisterAreaHolder', 'ResetPasswordAreaHolder') 밑에있는 Object들을 가져와서 적용

     

    ⑤ UI 전환을 위한 버튼에 적용할 Method를 작성하여 Script 수정

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using TMPro;
    
    public class LoginPagePlayfab : MonoBehaviour
    {
        [Header("Login")]
        [SerializeField] private TMP_InputField EmailLoginInput;
        [SerializeField] private TMP_InputField PasswordLoginput;
        [SerializeField] private GameObject LoginPage;
    
        [Header("Register")]
        [SerializeField] private TMP_InputField UsernameRegisterInput;
        [SerializeField] private TMP_InputField EmailRegisterInput;
        [SerializeField] private TMP_InputField PasswordRegisterInput;
        [SerializeField] private GameObject RegisterPage;
    
        [Header("Recovery")]
        [SerializeField] private TMP_InputField EmailRecoveryInput;
        [SerializeField] private GameObject RecoveryPage;
    
        private void Start()
        {
    
        }
    
        private void Update()
        {
    
        }
    
        #region Button Functions
        public void OpenLoginPage()
        {
            LoginPage.SetActive(true);
            RegisterPage.SetActive(false);
            RecoveryPage.SetActive(false);
        }
    
        public void OpenRegisterPage()
        {
            LoginPage.SetActive(false);
            RegisterPage.SetActive(true);
            RecoveryPage.SetActive(false);
        }
    
        public void OpenRecoveryPage()
        {
            LoginPage.SetActive(false);
            RegisterPage.SetActive(false);
            RecoveryPage.SetActive(true);
        }
        #endregion
    }

     

    ⑥ 각각의 UI에서 화면 전환 버튼('뒤로가기', '비밀번호 찾기' 버튼 등)의 'Inspector' >  'On Click()' > '+' 에서 Script 파일이 적용된 Object인 'LoginSystem'을 적용하여 해당하는 화면은 띄우는 Method를 선택

        *Tutorial Video: https://youtu.be/ee4C7CUy9gA

     

    ⑦ PlayFab SDK 다운받아 Unity에 Import하기. 잘 Import 되었다면 Assets 폴더에 'PlayFabSDK' 폴더가 생성되어 있는것으로 확인 가능. 이제는 Script에서 PlayFab 사용 가능

        *Download links

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using TMPro;
    using PlayFab; // 사용가능!
    
    public class LoginPagePlayfab : MonoBehaviour
    {
        [Header("Login")]
        [SerializeField] private TMP_InputField EmailLoginInput;
        [SerializeField] private TMP_InputField PasswordLoginput;
        [SerializeField] private GameObject LoginPage;
    
        [Header("Register")]
        [SerializeField] private TMP_InputField UsernameRegisterInput;
        [SerializeField] private TMP_InputField EmailRegisterInput;
        [SerializeField] private TMP_InputField PasswordRegisterInput;
        [SerializeField] private GameObject RegisterPage;
    
        [Header("Recovery")]
        [SerializeField] private TMP_InputField EmailRecoveryInput;
        [SerializeField] private GameObject RecoveryPage;
    
        private void Start()
        {
    
        }
    
        private void Update()
        {
    
        }
    
        #region Button Functions
        public void OpenLoginPage()
        {
            LoginPage.SetActive(true);
            RegisterPage.SetActive(false);
            RecoveryPage.SetActive(false);
        }
    
        public void OpenRegisterPage()
        {
            LoginPage.SetActive(false);
            RegisterPage.SetActive(true);
            RecoveryPage.SetActive(false);
        }
    
        public void OpenRecoveryPage()
        {
            LoginPage.SetActive(false);
            RegisterPage.SetActive(false);
            RecoveryPage.SetActive(true);
        }
        #endregion
    }

     

    ⑧ PlayFab Web(https://playfab.com/)에 접속하여 계정 만들기

     

    ⑨ 로그인하여 Project에 사용할 'New Studio' 만들기 (실습에서는 'TutorialStudio' 이름으로 생성)

     

    ⑩ 생성된 'TutorialStudio'의 'My Game' > 설정 > 'Edit Title Info' 로 들어가서 Game Title 변경 가능 (실습에서는 'PlayfabTutorial' 이름으로 변경, 이 단계는 불필요하면 skip해도 됨)

     

     

    Reference

    반응형
Designed by Tistory.