Hive SDK Unity3D 게스트 로그인에 대해서 설명하는 가이드이다.
Unity3D 에디터 상에서 C2SModule.Sns.Login함수를 이용하여 게스트로그인을 하는것이 가능하다.
 

  • 제공 기능
    • 게스트 로그인용 did를 설정하는 기능
    • 게스트 로그인용 appId 설정 기능
    • C2SModule.Social.Initialize
    • C2SModule.Sns.Login (게스트 로그인만 가능)
  • Unity 게스트 로그인 요구 사항이 부분 수정

  • Hive SDK 버전

    • v1.8.7
    • v1.9.4
    • v1.10.3+
  • Windows Editor
    • Windows 7이상
    • 64bit 또는 32bit Unity 에디터
  • OS X Editor
    • OS X 10.8 이상
    • 64bit Unity 에디터
       

설정

게스트 로그인 설정하기

Unity 상단 메뉴에서 [Com2us > Login Setting]을 클릭한다.

활성화 된 에디터 창에 원하는 did와 AppId를 설정한다.

AppId의 경우 C2SModule.Social.Initialize함수에 파라메터로 appId를 넘겼다면 에디터의 설정값은 무시된다.


원하는 값을 설정했다면 Apply 버튼을 누른다.
 

2. 코드 작성하기

로그인 기능을 테스트하기 위해 다음과 같은 테스트 코드를 작성하였다.
다음 코드에서 C2SModule.Social.initialize에 들어가는 파라메터는 실제로 Hive 샘플에서 사용하는 파라메터이다.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class Example : MonoBehaviour {

void ResultDelegate(C2SModule.Api api,C2SModule.Parameter arg,C2SModule.Error error) {
//edit Result Delegate
}

// Use this for initialization
void Start () {
C2SModule.Social.SetCommonResultDelegate(ResultDelegate);

//초기화용 파라메터를 설정
C2SModule.Parameter arg = new C2SModule.Parameter() {
{“useDevelop”,true},
{“appId”,”com.com2us.misample.normal.freefull.apple.global.ios.ent”},
{“serverId”,”asia”},
{“Sns”,new C2SModule.Parameter(){
{“useStaging”,true}
}},
{“Inapp”,new C2SModule.Parameter(){
{“useStaging”,true},
{“pidList”,new List(){
#if UNITY_ANDROID
“com.gamevilusa.sampleProject.android.google.global.normal.100SP”;
#elif UNITY_IPHONE || UNITY_IOS
“com.gamevilusa.sampleProject.ios.apple.global.normal.100SP”;
#endif
}}
}},
{“push”,new C2SModule.Parameter(){
{“useStaging”,true}
}},
{“Promotion”,new C2SModule.Parameter(){
{“useStaging”,true},
{“showLog”,true}
}}
};

//초기화를 시도합니다.
C2SModule.Error error;
C2SModule.Social.Initialize(arg, out error, (C2SModule.Parameter retArg,C2SModule.Error retError) =>
{
if(retError != null) {
Debug.Log(retError.message);
return;
}
C2SParamShowLog(retArg);

//Unity 에디터에서는 게스트 로그인만 가능하다.
C2SModule.Parameter loginArg = new C2SModule.Parameter() {
{“type”,”guest”}
};
C2SModule.Error loginError;
C2SModule.Sns.Login(loginArg, out loginError, (C2SModule.Parameter retLoginArg, C2SModule.Error retLoginError) =>
{
if(retLoginError != null) {
Debug.Log(retLoginError.message);
return;
}
C2SParamShowLog(retLoginArg);
});
});
}

void C2SParamShowLog(C2SModule.Parameter param)
{
if(param == null) return;

string[] keys = new string[param.Keys.Count];
param.Keys.CopyTo(keys, 0);
for (int i = 0; i < keys.Length; ++i)
{
Debug.Log(keys[i] + ” : ” + param[keys[i]]);
}
}
}

 

3. 테스트

위에서 빈 Scene과 GameObject를 생성한뒤 작성한 Example.cs를 빈 GameObject에 추가하여 테스트 해본다.
Play버튼을 눌렀을때 다음과 같이 로그가 찍히면 정상이다.

 

4. 참고

vid 발급은 Hive 샌드박스 서버를 이용하게 되며 정상발급 로직과 동일하다.
따라서 최초 한번 발급 된 이후, 로그인 요청 시 로컬 스토리지에 저장된 vid, session key를 이용하여 로그인하게 된다.
did는 발급되는 값이 아니며 설정 항목에서 설정한 did를 이용하여 Hive와 통신한다.