목차

개요

본 문서는 Hub 2.6 클라이언트 라이브러리의 Unity Plugin API 명세를 기술한다.

플러그인 설정값

C2SHub2Plugin.cs 파일에 선언된 허브 모듈 초기화에 사용되는 값들을 개발하고 있는 앱에 해당하는 값으로 수정해야 한다.

//
// File: Assets/Plugins/C2SHub2Plugin.cs
//
public static class C2SHub {
    //
    // Configuration
    //
    // -- TODO: Modify APP_ID and GAME_INDEX of your application and USE_TEST_SERVER
    // 
#if UNITY_IPHONE && !UNITY_EDITOR
    public static string APP_ID         = /* my-app-id for ios */;
    public static string GAME_INDEX         = /* my-game-index for ios */;
    public static bool USE_TEST_SERVER      = /* true or false */;
    // ...
#elif UNITY_ANDROID && !UNITY_EDITOR
    public static string APP_ID         = /* my-app-id for android*/;
    public static string GAME_INDEX         = /* my-game-index for android */;     
    public static bool USE_TEST_SERVER      = /* true or false */;
    private static string MAIN_ACTIVITY_NAME    = /* my android app main activity name*/;
    // ...
#else
    // ...
#endif 
    // ...
}

APP_ID

앱 아이디

GAME_INDEX

게임 인덱스

USE_TEST_SERVER

허브 스테이징 서버 사용 여부

MAIN_ACTIVITY_NAME (Android Only)

Android 앱의 main activity name. 

Callback 호출 방식

네이티브 API와 유니티 플러그인 API와의 가장 큰 차이점은 callback 함수 전달과 호출 방식인데

네이티브 API의 경우, callback 함수 포인터만으로 콜백 함수 전달과 호출이 가능하지만

유니티 플러그인의 경우 C#과 네티이브 코드 간에 함수 포인터를 전달하는 것이 불가능하다.

이 때문에 유니티에서는 네이티브에서 유니티의 C# 객체의 함수를 호출할 수 있도록

UnitySendMessage라는 네이티브 함수를 제공하고 있는데 이를 이용하면 네이티브 코드의 처리 결과를

유니티의 C# 객체로 전달하는 것이 가능해진다.

때문에 플러그인 API에서는 UnitySendMessage() 호출 시 필요한 GameObject 객체와 함수명을 API 의 시 인자로 받는다.

이러한 callback 함수 호출 방식을 제외하고는 네이티브 API와 플러그인 API는 기능적으로 동일하다.

플러그인 함수

플러그인 객체는 IC2SHub2Plugin 인터페이스의 함수를 구현하고 있으며, 이 함수들은 기능적으로 네이티브 API와 1:1로 대응된다.

따라서 플러그인 API의 기능 및 반환값 등의 자세한 정보는 해당 API에 대응되는 네이티브 API의 설명을 참고하면 된다.

네이티브 API의 각 항목의 내용을 살펴보시기 전에 Hub API Reference 문서를 읽어보시기 바랍니다.
Unity Plugin API iOS Native, C Plugin API 비고
Initialize
(Deprecated, C2S.19.6)
CS_hubInitialize Initialize는 네이티브 API에서 함수 파라미터로 전달하는 것들(appid, gameindex 등..)을 설정 값으로 분리해놓아서 별도의 함수 인자를 갖지 않는다.
InitializeEx CS_hubInitializeEx  
Uninitialize
(Deprecated, C2S.19.6)
CS_hubUninitialize  
Auth CS_hubAuth  
Logout CS_hubLogout  
GuestAcquireUid CS_hubGuestAcquireUid  
GuestBind CS_hubGuestBind  
ShowDialog CS_hubShowDialog  
AsyncRequest CS_hubAsyncRequest  
SocialRequest CS_hubSocialRequest  
ShowDialogForChatbot CS_hubShowDialogForChatbot  

SocialRequest

Hub v.2.1.0 이상에서 지원되는 SocialRequest 함수의 파라미터는 아래 상수를 사용한다. 아래 함수는 모두 Assets/Plugins/C2SHub2Plugin.cs 파일에 정의되어 있다.

int SocialRequest(string socialService,
                  string requestName,
                  string param,
                  GameObject callbackObject,
                  string callbackFunction
);
static public class SocialService {
    public static string Facebook = "facebook";
    public static string GooglePlus = "googleplus";
}
static public class SocialRequestType {
    public static string Share = "social/share_app_activity";                // 공유하기
    public static string AppMessage = "social/send_app_message";             // 앱 메시지 보내기
    public static string AppInvitation = "social/send_app_invitation";       // 초대 보내기
    public static string InvitationList = "social/request_invitation_list";  // 초대 목록 요청하기
}