This document is about: PUN 2
SWITCH TO

PUN Classic (v1), PUN 2, Bolt는 휴업 모드입니다. Unity2022에 대해서는 PUN 2에서 서포트하지만, 신기능의 추가는 없습니다. 현재 이용중인 고객님의 PUN 및 Bolt 프로젝트는 중단되지 않고, 퍼포먼스나 성능이 떨어지는 일도 없습니다. 앞으로의 새로운 프로젝트에는 Photon Fusion 또는 Quantum을 사용해 주십시오.

페이스북을 이용한 커스텀 인증

개요  

이 튜토리얼에서는 Facebook 커스텀 인증 기능이 있는 Photon Unity Networking (PUN)프로젝트를 생성할 것입니다.

페이스북 어플리케이션 생성  

먼저 페이스북 개발자 웹사이트에서 어플리케이션을 생성 해야 합니다.

Apps -> Create a New App 을 클릭하여 앱의 이름을 입력 하고 Create App 버튼을 누릅니다.
Apps -> [your_app] 을 선택하여 App IDApp Secret을 복사 합니다.

Photon Dashboard  

Photon Dashboard를 열어서, 사용 할 App Id 를 선택하여 *상세보기(See Details)*를 클릭 합니다. Authentication 탭으로 가서 *Allow anonymous clients to connect, independently of configured providers.*를 체크 해제 합니다. Facebook authentication provider 를 선택하고 App IDSecret 를 붙여 넣습니다.Reject all clients if not available를 체크 합니다.

PUN 설정하기 

유니티를 열어 PUN을import 하고 setup 합니다. 유니티의 메인 메뉴에서 Facebook -> Edit Settings 를 선택 후 페이스북 어플리케이션의 NameApp ID를 입력 합니다.

커스텀 인증 구현  

새로운 C# 스크립트를 생성 하고 스크립트를 씬위의 객체에 붙여 오픈 합니다. 다음의 페이스북 초기화와 로그인 코드를 사용 합니다 :

C#


    using Facebook;
    void Awake()
    {
        FB.Init(SetInit, OnHideUnity);
    }

    private void SetInit()
    {
        enabled = true;
        if (FB.IsLoggedIn)
        {
            Debug.Log("SetInit()");
            OnLoggedIn();
        }
    }

    private void OnHideUnity(bool isGameShown)
    {
        Debug.Log("OnHideUnity()");
    }  

    void LoginCallback(FBResult result)
    {
        if (FB.IsLoggedIn)
        {
            OnLoggedIn();
        }
    }

페이스북 로그인 다이얼로그를 오픈 하기 위한 버튼을 추가 합니다:

C#


    void OnGUI()
    {
        if (!FB.IsLoggedIn)
        {
            if (GUI.Button(new Rect(10, 10, 100, 20), "Login to Facebook")) {
                FB.Login("email", LoginCallback);
            }
        }
        GUI.Label(new Rect(200, 50, 100, 20), PhotonNetwork.connectionStateDetailed.ToString());
    }

PUN 에서 페이스북 인증을 이용하기 위해 아래코드를 추가 합니다:

C#


    void OnLoggedIn()
    {
        PhotonNetwork.AuthValues = new AuthenticationValues();
        PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Facebook;
        PhotonNetwork.AuthValues.UserId = FB.UserId; // alternatively set by server
        PhotonNetwork.AuthValues.AddAuthParameter("username", FB.UserId);
        PhotonNetwork.AuthValues.AddAuthParameter("token", FB.AccessToken);
        PhotonNetwork.ConnectUsingSettings("1.0");
    }

어플리케이션 디플로이  

페이스북은 어플리케이션 호스팅을 위해 https 를 사용하는 웹 서버가 필요 합니다.

이 웹 서버는 IIS, WAMP 등과 같은 로컬 웹 서버를 사용할 수 있습니다. 하지만 가장 쉬운 방법은 Dropbox 에 .unity3d 파일을 추가 하는 것 입니다. 드롭박스의 퍼블릭 폴더에 .unity3d 파일을 추가하고 이 파일의 링크를 카피하여
페이스북 앱 웹 사이트 Unity Binary URL에 붙여 넣으시면 됩니다.

결론  

이 튜토리얼에서는 페이스북 API와 PUN 의 통합에 필요한 기초 단계를 다루어 봤습니다.

아직 이해가 가지 않은 부분이 있나요? 언제든지 forum으로 오셔서 질문 해주시기 바랍니다.
행복한 코딩 하세요!

Back to top