Skip to content

Releases: bytecodelab/hive5-sdk-unity

v1.0.2-beta

11 Nov 07:08

Choose a tag to compare

v1.0.2-beta Pre-release
Pre-release

릴리즈노트

v1.0.2-beta에서는 다음과 같은 내용이 달라졌습니다.

신규

  1. 통계/분석/세그먼트를 위한 플레이어 메타데이터 저장 메서드가 추가되었습니다.

    public void UpdateMetadata(PlayerMetadata metadata, Callback callback) { ... }

수정

  1. 1개의 에러코드가 추가되었습니다.

    Name Code
    AlreadyExistingUser 2901
  2. 서버 헬스체크 간격의 기본값이 변경되었습니다. (Hive5Config.cs)

    // 변경 전
    Hive5Config.AutoHealthCheckInterval = 3000000;
    
    // 변경 후
    Hive5Config.AutoHealthCheckInterval = 300000;
  3. oauth 등 더욱 다양한 외부계정 로그인을 지원하기 위해 logIn메서드에 platformParams 인수가 추가되었습니다.

    // 변경 전
    public void LogIn(string os, string build, string locale, User user, Callback callback)
    
    // 변경 후
    public void LogIn(string os, string build, string locale, User user, string platformParams, Callback callback)
  4. Hive5Client.Purchase.CreatePurchase, CompletePurchase, GetPurchaseStatus 메서드 시그니쳐가 변경되었습니다.

    CreatePurchase
    platformParams 에는 anonymous types를 활용하시면 됩니다.

    // 변경 전
    public void CreatePurchase(string platform, string platformParams, string productCode, User receiver, Callback callback)
    
    // 변경 후
    public void CreatePurchase(string platform, object platformParams, string productCode, User receiver, Callback callback)

    CompletePurchase
    platformParams, extraParams 에는 anonymous types를 활용하시면 됩니다.

    // 변경 전
    public void CompletePurchase(string id, string platform, object platformParams, long listPrice, long purchasedPrice, string currency, object extraParams, Callback callback)
    
    // 변경 후
    public void CompletePurchase(string id, string platform, object platformParams, long listPrice, long purchasedPrice, string currency, object extraParams, Callback callback)

    GetPurchaseStatus

    // 변경 전
    public void GetPurchaseStatus(long id, Callback callback)
    
    // 변경 후
    public void GetPurchaseStatus(string id, Callback callback)

개선

  1. 실시간서버 Hive5Spider의 메시지 수신 이벤트가 사용하기 편리하게 분화되었습니다.

    변경 전

    • public event MessageReceivedEventHandler MessageReceived

    변경 후

    • public event MessageReceivedEventHandler AppMessageReceived
    • public event MessageReceivedEventHandler ZoneMessageReceived
    • public event MessageReceivedEventHandler UserMessageReceived

v1.0.1-beta

16 Oct 12:44

Choose a tag to compare

v1.0.1-beta Pre-release
Pre-release

릴리즈노트

v1.0.1-beta에서는 다음과 같은 내용이 달라졌습니다.

신규

  1. 메일 보상 수락 메서드가 추가되었습니다.
    • Hive5Client.Mail.AcceptReward 메서드 참고
  2. 플레이어에게 추가데이터(JSON형식)를 설정하고 조회하는 메서드가 추가되었습니다.
    • Hive5Client.Settings.SetExtras 메서드 참고
    • Hive5Client.Settings.GetExtras 메서드 참고

수정

  1. 에러코드 추가/삭제
    3개의 에러코드가 추가되었습니다.
Name Code
Unsupported_Platform 4100
Auth_Failed 4101
No_External_Platform_Info 4200

2개의 에러코드가 삭제되었습니다.

Name Code
No_Google_IAP_Public_Key 2206
No_Kakao_App_Auth_Info 2208
  1. Hive5Client.Auth.LogIn메서드에 platformParams 필드가 추가되었습니다.

개선

  1. 결제 API가 하나로 통합되었습니다.
    Apple, Google, Naver 결제를 담당하던 결제 API들이 통합되었습니다. 앞으로 더욱 다양한 결제 플랫폼을 추가하기 위해 단행되었습니다.
    • Hive5Client.Purchase.CreatePurchase
    • Hive5Client.Purchase.CompletePurchase
    • Hive5Client.Purchase.GetPurchaseStatus

v0.4.9-beta

16 Apr 04:16

Choose a tag to compare

v0.4.9-beta Pre-release
Pre-release

릴리즈노트

SDK Import 하는 방법은 하단의 Import SDK 섹션을 참고해 주십시오.

v0.4.9-beta에서는 다음과 같은 내용이 달라졌습니다.

1. Hive5 API 서버 Health Check 기능

서버의 상태는 다음과 같이 존재합니다.

ServerStatus Description
Indeterminated 아직 서버 상태확인 전입니다.
Normal 현재 서버는 건강합니다.
Warning 현재 서버 점검을 앞두고 있습니다. Maintenance.PendingPlans 정보를 확인하십시오.
Critical 현재 서버 점검 상태입니다. Maintenance.ExecutionPlan 정보를 확인하십시오.

다음과 같이 호출하면, 서버의 상태를 주기적으로 확인하기 시작합니다.

HealthChecker.Instance.StartMonitor();

그리고 Hive5HealthCheckListener의 OnServerStatusChanged를 구현하면, 서버의 상태 변화에 따라 대응할 수 있습니다.

Assets/Hive5HealthCheckerListener.cs 파일에서

public void OnServerStatusChanged(ServerStatus status, Maintenance maintenance)
{
    switch (status)
    {
        case ServerStatus.Indeterminated:
            break;
        case ServerStatus.Normal:
            break;
        case ServerStatus.Warning:
            // use maintenance.PendingPlans
            break;
        case ServerStatus.Critical:
            // use maintenance.ExecutingPlan
            break;
        default:
            break;
    }
}

또는 HealthChecker.Instance의 StatusChanged 이벤트를 직접 핸들링하는 방법이 있습니다.

HealthChecker.Instance.StatusChanged += (s, e) =>
{
    // code here
};

서버 상태체크 URL들

Hive5Config.cs의 아래 상수들을 이용하여 설정합니다.
실제 설정할 URL들은 담당자에게 문의하여 발급 받으십시오.
Hive5Client를 Init할 때 정해주는 Zone [Alpha, Beta, Production]에 따라 선택적으로 사용됩니다.

public static string ProductionHealthUrl = "your-health-check-url-for-production";
public static string BetaHealthUrl = "your-health-check-url-for-beta";
public static string AlphaHealthUrl = "your-health-check-url-for-alpha";

자동 업데이트 주기

Hive5Config.cs 의 아래 부분을 수정하여 주기를 변경합니다. 단위는 ms입니다.
처음에는 기본값으로 5분이 설정되어 있습니다.

public static int AutoHealthCheckInterval = 300000; // 5 분

언어설정

HealthChecker의 CountryCode 프로퍼티를 통해 반환되는 메시지의 언어를 설정할 수 있습니다.

HealthChecker.Instance.CountryCode = "ko";

국가코드는 2자리 알파벳의 ISO 3166-1 alpha-2를 따릅니다.

2. Unity5에 대응하여 내부 WWW 관련 로직 변경

Unity5 부터는 HashTable 자료형의 지원이 중단됩니다.
따라서 SDK에서 내부적으로 사용되는 WWW 생성자 중 HTTP header를 HashTable을 이용하여 전달하고 있는 부분이 있어 이것을 모두 Dictionary<string, string>을 사용하도록 변경하였습니다.# Import SDK

Import SDK

1. Unity의 Import Package기능으로 가져오기

첨부된 Hive5_SDK_v0.4.8_beta.unitypackage 파일을 [Assets - Import Package - Custom Package...]기능을 통해 가져옵니다.

2015-03-23 10 48 36

2. 프로젝트에 수동으로 붙여넣기

zip이나 tgz파일을 다운받아, 압축을 해제한 후
Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

Assets/Hive5Config.cs 파일은 각자의 설정이 담긴 파일이므로 덮어쓰지 말고,
새로 추가된 부분만 수동으로 병합하시기 바랍니다.

Assets/Hive5HealthCheckerListener.cs 파일도 덮어쓰지 말고,
새로 변경된 부분만 수동으로 병합하시기 바랍니다.

v0.4.8-beta

10 Mar 11:48

Choose a tag to compare

v0.4.8-beta Pre-release
Pre-release

Import SDK

1. Unity의 Import Package기능으로 가져오기

첨부된 Hive5_SDK_v0.4.8_beta.unitypackage 파일을 [Assets - Import Package - Custom Package...]기능을 통해 가져옵니다.

2015-03-23 10 48 36

2. 프로젝트에 수동으로 붙여넣기

zip이나 tgz파일을 다운받아, 압축을 해제한 후
Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

Hive5Config.cs 파일은 각자의 설정이 담긴 파일이므로 덮어쓰지 말고,
새로 추가된 부분만 수동으로 병합하시기 바랍니다.

릴리즈노트

v0.4.8-beta에서는

1. ApplyCoupon 메서드 추가

이 메서드를 통해 Coupon 코드를 소비할 수 있습니다.

public void ApplyCoupon(string code, Callback callback)

추가된 에러코드

ExpiredCoupon = 2504,
ThePlayerHasAlreadyConsumedTheCoupon = 2505,
TheCouponIsNoMoreApplicable = 2506,

삭제된 에러코드

//PromotionCodeAlreadyConsumed = 2501,
//InvalidPromotionCode = 2502,

2. 설정이동 (Hive5/Common/Const.cs -> Hive5Config.cs)

아래 상수들이 Hive5Config 클래스로 이동하였습니다.

public static string ProductionHost = "your_prod_server_domain";
public static string BetaHost       = "your_beta_server_domain";
public static string AlphaHost          = "your_alpha_server_domain";
public static string Version        = "v5";

3. Api 중복호출방지 기능 추가

Url, QueryString, PostBody를 signature로 하여, 중복호출을 방지하는 기능이 생겼습니다.
동일한 호출은 하나의 요청이 반환을 받기 전에 또 요청할 수 없습니다.
하나의 요청이 제대로 반환되지 않은 경우 Hive5Config.DuplicationApiCallExpirationPeriod 설정값에 따라
Timeout이 되어 소멸되며 그 때부터는 다시 호출이 가능합니다.

중복호출기능 on/off

기능을 on/off 하려면 아래 변수를 이용합니다.

var hive5 = Hive5Client.Instance;
hive5.BlockDuplicatedCall = true; // 중복호출을 막습니다. 기본값은 false입니다.

중복호출 타임아웃

Hive5Config.cs

/// <summary>
/// 중복호출로 단정하지 않는 시간 차이
/// 순수 서버프로시저 수행 타임아웃 + Http request/response에 대한 latency고려된 값(단위:ms)
/// </summary>
public static int DuplicationApiCallExpirationPeriod = 2500;

추가된 에러코드

중복호출이 발생한 경우 발생하는 에러코드가 추가되었습니다.

// SDK(client-side) error code: 99xxx
DuplicatedApiCall               = 990001

4. 지불생성 overload 메서드 추가

나에게 선물하기 위해 구매를 하는 경우를 위해 불필요한 파라미터를 제거한 메서드를 추가

public void CreateGooglePurchase(string productCode, Callback callback)
public void CreateApplePurchase(string productCode, Callback callback)

5. Create*Purchase에서 필수가 아닌 파라미터를 확인하여 예외를 발생시키던 코드를 제거

파라미터 receiverPlatform에 값이 없어도 예외발생하지 않음.

6. CreatePlatformAccount와 AuthenticatePlatformAccount가 반환하는 Id의 타입을

기존 int에서 String으로 변경.

v0.4.6-beta

16 Feb 05:09

Choose a tag to compare

v0.4.6-beta Pre-release
Pre-release

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.6-beta에서는

1. CallProcedureWithoutAuth 메서드가 추가

이 메서드를 통해 특정 목적을 위해 Hive5에 로그인하기 전에 프로시저를 호출할 수 있습니다.

public void CallProcedureWithoutAuth(string procedureName, object parameterObject,  Callback callback)

사용예

var hive5 = Hive5Client.Instance;
var data = new {
    value1 = 5
};

hive5.CallProcedureWithoutAuth("echo", data, (response) => {
  // handle response
});

v0.4.5-beta

11 Feb 06:26

Choose a tag to compare

v0.4.5-beta Pre-release
Pre-release

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.4-beta에서는

1. JsonData 확장메서드 (JsonDataExtensions) ToList()의 오작동 버그를 해결하였습니다.

var jsonString = "{\"ids\":[\"-123\", \"abcd\"]}";
var jsonData = LitJson.JsonMapper.ToObject(jsonString);

var ids = jsonData["ids"].ToList<string>();

v0.4.4-beta

09 Feb 08:53

Choose a tag to compare

v0.4.4-beta Pre-release
Pre-release

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.4-beta에서는

1. Push 메세지 수신여부를 저장하는 API가 추가되었습니다.

public void TogglePushAccept(bool accept, Callback callback)

2. UpdatePushToken 변경된 Url로 업데이트

이전 URL은 deprecate 예정이라 변경하였습니다.

3. json body의 내용이 없이 POST 전송되는 API의 경우에 발생하던 오류 고침

json body가 내용이 없을 때는 HTTP Header 중 Content-Type에 application/json을
넣어 보내지 않습니다.

4. JsonData 확장메서드로 ToList<T>()가 추가되었습니다.

v0.4.3-beta

05 Feb 09:12

Choose a tag to compare

v0.4.3-beta Pre-release
Pre-release

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.3-beta에서는

1. 유니티에디터에서 오류를 유발하는 한글로 끝나는 주석에 마침표(.)를 추가하여 오류가 나지 않게 하였습니다.

2. 아래 result code가 추가되었습니다.

UndefinedLibraryMethod         = 3105

3. SDK 패키지에 포함되어 배포되었던 임시파일들을 제거하였습니다.

*.meta 파일들이 제거되었습니다.
Library 폴더 및 Library/
파일들이 제거되었습니다.

v0.4.2-beta

05 Feb 06:52

Choose a tag to compare

v0.4.2-beta Pre-release
Pre-release

주의! 한글로 끝나는 주석이 포함되어, 유니티 에디터에서 오류가 나는
버전이므로 다음 버전을 내려받으시기 바랍니다.

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.2-beta에서는

1. 중복로그인 방지 기능이 추가되었습니다.

이와 함께 다음의 API Result Code가 추가되었습니다.
TheSessionKeyIsInvalid = 8002

한 디바이스에서 로그인 한 후 다른 디바이스에서 같은 계정으로 로그인하게 되면,
전에 로그인 한 디바이스에서 요청이 있을 경우 위 에러가 발생합니다.

2. JsonDataExtensions 클래스가 추가되었습니다.

JsonData 객체를 다루실 때 다음과 같은 편의 기능을 제공합니다.

var jsonData = LitJson.JsonMapper.ToObject(jsonString);
int value1 = jsonData["count"].ToInt();
long value2 = jsonData["amount"].ToLong();

3. CallProcedure에서 프로시저 파라미터로 object 타입을 지원합니다.

단, object는 Json Serializable 해야 합니다.

public void CallProcedure(string procedureName, object parameterObject,  Callback callback)

array의 경우 TupleList<string, string>로 변환하여 전달하기에 힘든 경우가 많았는데, 이제는 잘 구조화된 기존객체를 전달하거나, 익명 클래스(Anonymous Class)를 활용하면 간단히 해결됩니다.

public class Item
{
    public int Id;
    public int Grade;
}
List<Item> items = new List<Item>() {
    new Item() { Id = 1, Grade = 1 },
    new Item() { Id = 2, Grade = 2 },
};

var data = new {
    hero_type = 1,
    gamble_items = items
};

hive5.CallProcedure("test", data, (response) => {
    // code here : handle response
});

v0.4.1-beta

19 Jan 02:44

Choose a tag to compare

v0.4.1-beta Pre-release
Pre-release

아쉽게도, 아직 제대로 된 SDK 패키지가 아닙니다.
SDK를 포함한 Unity 샘플 프로젝트입니다.

Assets/Hive5 폴더와 Assets/Plugins만 복사하여 자신의 Unity 게임에 덮어쓰기 하시면
SDK를 이용하실 수 있습니다.

v0.4.1-beta에서는

  1. 누락된 API Result Code가 동기화되었습니다.
  • 추가된 Result Code
NoKakaoAppAuthInfo          = 2208,

PromotionCodeAlreadyConsumed = 2501,
InvalidPromotionCode = 2502,

InvalidPayload                  = 5001,

InvalidAppConfiguration         = 9001,
InvalidServiceName              = 9002,
InvalidJobItem                  = 9003,

NotImplemented                  = 9998,
  • 변경된 Result Code
// TheUserHasBeenDisabled       = 8001,
TheUserHasBeenBlocked           = 8001,
  • 삭제된 Result Code
InvalidRoundStatus          = 2601, 
  1. Unity3D 환경에서 호출되는 GetHttp 메서드에서 전송하는 HTTP 헤더에
    X-Platform-Key 정보가 누락되어 바로잡았습니다.