PUN Classic(PUN1이라고도 불립니다)은 PUN의 첫 버전입니다.         현재는 리팩토링 및 기능 확장에 의해 PUN2로 새롭게 바뀌었습니다.          새 프로젝트에는 PUN2를 이용해 주시고, 기존의 프로젝트도 가능하면 PUN1에서 PUN2로 옮기는 것을 권장합니다.  자세한 내용은: "마이그레이션 노트". PUN Classic은 곧 점검이 시작됩니다.        중요한 버그의 수정과 Unity의 신버전의 지원 등을 예정하고 있습니다. 신기능의 추가는 PUN2에서만 이루어지므로 주의해 주십시오.

Photon VIVEPORT 인증

Contents

개요

Photon 인증 프로바이더로 VIVEPORT를 추가하는 것은 쉽습니다.

VIVEPORT AppId와 VIVEPORT AppSecret이 필요 합니다. AppSecret 신청을 위해 VIVEPORT 컨텐츠 팀(store@viveport.com)으로 연락하십시오. 이 단계는 자동화되어 있지 않으므로, 먼저 진행 하시는 것이 좋습니다.

Back To Top

어플리케이션 설정

첫 번째 단계로, Photon 어플리케이션의 관리화면에서 VIVEPORT 인증을 설정해야 합니다.

어플리케이션의 "관리" 페이지로 이동하고 아래로 스크롤하여 "인증" 섹션으로 이동합니다. 한 번의 클릭으로 "HTC Vive" 인증 프로바이더를 추가하거나 편집할 수 있습니다. 다음 사항이 필요합니다:

  • appid: 귀하의 VIVEPORT 앱 ID.
  • appsecret: 귀하의 VIVEPORT 앱 Secret.

VIVEPORT AppId는 VIVEPORT 개발자 콘솔에서 확인하실 수 있습니다. 귀하의 어플리케이션을 선택하고 "VIVEPORT 목록" 페이지를 오픈합니다. AppSecret 신청을 위해서는 VIVEPORT 컨텐츠 팀 (store@viveport.com)으로 연락해야 합니다.

Back To Top

클라이언트 코드

Photon은 VIVEPORT API에서 제공하는 임시 토큰을 사용하여 VIVEPORT 사용자임을 확인합니다. VIVEPORT SDK 를 다운로드하고 zip 파일의 Unity 패키지를 프로젝트로 임포트 하십시오.

Back To Top

VIVEPORT 토큰 얻기

Photon에 연결하기 전에 클라이언트는 VIVEPORT에 로그인하여 세션 토큰을 받아야 합니다. 다음 워크플로우는 필수 단계를 요약한 것입니다. 전체 코드는 VIVEPORT SDK에 있는 VIVEPORTDemo.cs에서 확인할 수 있습니다.

VIVEPORT의 경우와 마찬가지로, 첫 번째 단계는 VIVEPORT AppId를 사용하여 API를 init 하는 것입니다.

//...

Api.Init(InitStatusHandler, APP_ID);

//...

private static void InitStatusHandler(int nResult)
{
    if (nResult == 0)
    {
        bInit = true;
        bIsReady = false;
        ViveSessionToken = string.Empty;
        bArcadeIsReady = false;
        Viveport.Core.Logger.Log("InitStatusHandler is successful");
    }
    else
    {
        // Init error, close your app and make sure your app ID is correct or not.
        bInit = false;
        Viveport.Core.Logger.Log("InitStatusHandler error : " + nResult);
    }
}

//...

init 후 (즉, InitStatusHandler()내), 토큰이 준비되었는지 확인하고 Viveport.Token.IsReady를 호출합니다:

//...

Token.IsReady(IsTokenReadyHandler);

//...

private static void IsTokenReadyHandler(int nResult)
{
    if (nResult == 0)
    {
        bTokenIsReady = true;
        Viveport.Core.Logger.Log("IsTokenReadyHandler is successful");
    }
    else
    {
        bTokenIsReady = false;
        Viveport.Core.Logger.Log("IsTokenReadyHandler error: " + nResult);
    }
}

//...

이제 클라이언트가 유효한 VIVEPORT 사용자임을 증명하는 세션 토큰을 얻었습니다.

//...

Token.GetSessionToken(GetSessionTokenHandler);

//...

private static void GetSessionTokenHandler(int nResult, string message)
{
    if (nResult == 0)
    {
        Viveport.Core.Logger.Log("GetSessionTokenHandler is successful, token:" + message);

        // Photon:
        // With the viveport token, we can set the auth values for Photon and connect / auth.
        // We store the token for later use.
        ViveSessionToken = message;
    }
    else
    {
        if (message.Length != 0)
        {
            Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult + ", message:" + message);
        }
        else
        {
            Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult);
        }
    }
}

Back To Top

인증하기

ViveSessionToken은 클라이언트가 Photon VIVEPORT 인증을 위해 필요한 유일한 값입니다.

CustomAuthenticationType.Viveport 을 사용하여 "userToken" AuthParameter를 설정하십시오.

//...

    if (PhotonNetwork.AuthValues == null)
    {
        PhotonNetwork.AuthValues = new AuthenticationValues();
    }

    PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Viveport;
    PhotonNetwork.AuthValues.AddAuthParameter("userToken", ViveSessionToken);
    // do not set PhotonNetwork.AuthValues.Token or authentication will fail
    if (!PhotonNetwork.ConnectUsingSettings())
    {
        Debug.LogWarning("Could not PhotonNetwork.ConnectUsingSettings(). Check settings.");
    }

//...

기술문서 TOP으로 돌아가기