.NET Framework 3

Scripting Runtime Version이 .NET 3 framework일 때, 뒤끝의 기능을 사용하기 위한 가이드입니다.
Backend 4.1.0 버전 이후 닷넷3 버전에 대한 업데이트가 종료되었습니다.
닷넷3 버전의 경우 호환성 문제로 일부 뒤끝 기능을 사용할 수 없습니다.
새로운 기능을 사용하려는 개발사는 닷넷4 버전을 사용해주세요.

닷넷3 버전에서 사용할 수 없는 뒤끝 기능
  • 뒤끝 매치
  • 실시간 알림
  • 비동기 함수 큐

Unity 설정

아래와 같이 설정되어 있을 때, 뒤끝 기능을 사용할 수 있습니다.

  • 유니티 2019.2 이전 버전
  • Player Settings > Other Settings > Configuration
    • Scripting Runtime Version : .NET 3.x Equivalent
    • Scripting Backend : IL2CPP
      • 구글 플레이스토어, 애플 앱스토어에 업로드 하려면 반드시 64비트를 지원해야 합니다. 따라서 Mono 사용 시 해당 스토어에 출시를 할 수 없을 수도 있습니다.
    • API Compatibility Level : .Net 2.0
      • .Net 2.0 Subset을 사용하는 경우 빌드오류가 발생할 수 있습니다.

뒤끝 기능 사용

1. 초기화 메소드는 다음과 같이 진행하여야 합니다.

Backend.Initialize(BRO =>
{
    // 초기화 성공한 경우 실행
    if (BRO.IsSuccess())
    {
        // example
        // 버전체크 -> 업데이트
    }
    // 초기화 실패한 경우 실행
    else
    {

    }
});

2. 비동기방식으로 뒤끝 기능을 사용하기 위해서는 아래의 메소드를 사용해야 합니다.
닷넷3 방식의 경우 최대 4개의 인자값을 지닌 함수만 비동기 방식으로 사용할 수 있습니다.
GetPublicContentsByGamerIndate 함수의 경우 TableSortOrder 인자를 사용할 수 없습니다.

기존 닷넷3 방식의 비동기 함수 사용
  • 기존 닷넷3 방식에서 사용하던 함수의 마지막 인자값으로 콜백함수를 추가하는 방식 또한 사용이 가능합니다.
  • 하지만 일부 함수들의 경우 호환성 문제로 새로운 비동기 함수 사용방식을 사용해야 합니다.
  • 게임 정보 함수의 경우 새로운 비동기 함수 사용방식을 사용해야 합니다.
  • 로그인/회원가입/페더레이션 인증 관련 함수는 아래의 새로운 함수 및 새로운 비동기 함수 사용방식을 사용해야 합니다.
static void BackendAsyncClass.BackendAsync(Func<BackendReturnObject> BackendFunc, Action<BackendReturnObject> callback)
static void BackendAsyncClass.BackendAsync<T1>(Func<T1, BackendReturnObject> BackendFunc, T1 GT, Action<BackendReturnObject> callback)
static void BackendAsyncClass.BackendAsync<T1, T2>(Func<T1, T2, BackendReturnObject> BackendFunc, T1 GT1, T2 GT2, Action<BackendReturnObject> callback)
static void BackendAsyncClass.BackendAsync<T1, T2, T3>(Func<T1, T2, T3, BackendReturnObject> BackendFunc, T1 GT1, T2 GT2, T3 GT3, Action<BackendReturnObject> callback)
static void BackendAsyncClass.BackendAsync<T1, T2, T3, T4>(Func<T1, T2, T3, T4, BackendReturnObject> BackendFunc, T1 GT1, T2 GT2, T3 GT3, T4 GT4, Action<BackendReturnObject> callback)

// example
// parameter가 없는 경우
BackendAsyncClass.BackendAsync( Backend.Coupon.CouponList, broCallback => {

});

// parameter가 한 개인 경우
BackendAsyncClass.BackendAsync( Backend.BMember.UpdateNickname, "id2", broCallback => {
});

// parameter가 두 개인 경우
BackendAsyncClass.BackendAsync( Backend.GameInfo.Insert, "table_name", param, broCallback => {

});

// parameter가 세 개인 경우
BackendAsyncClass.BackendAsync( Backend.GameInfo.Update, "table_name", "inDate", param, broCallback => {

});

// parameter가 네 개인 경우
BackendAsyncClass.BackendAsync( Backend.GameInfo.GetMyPublicContents, "table_name", string.Empty, 0, TableSortOrder.DESC, broCallback => {

});

주의할 점

  • CustomSignUp, CustomLogin, AuthorizeFederation, RefreshTheBackendToken, LoginWithTheBackendToken는 BackendAsync 기능을 사용할 수 없습니다.
    각 메소드 대신, 아래와 같은 메소드를 사용하여야 기능을 사용할 수 있습니다.
    • CustomSignUp → CustomSignUpAsync
    • CustomLogin → CustomLoginAsync
    • AuthorizeFederation → AuthorizeFederationAsync
    • RefreshTheBackendToken → RefreshTheBackendTokenAsync
    • LoginWithTheBackendToken → LoginWithTheBackendTokenAsync
    • Example
      BackendAsyncClass.BackendAsync(Backend.BMember.CustomLoginAsync, idInput.text, PWInput.text, isComplete =>
      {
        // 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
        Debug.Log(isComplete.ToString());
        isSuccess = isComplete.IsSuccess();
        bro = isComplete;
      });

  • GetChartAndSave()는 BackendAsync 기능을 사용할 수 없습니다.
    해당 메소드 대신, GetChartAndSaveAsync()를 사용하여야 기능을 사용할 수 있습니다.
    BackendAsync( Backend.Chart.GetChartAndSaveAsync, bro => { 
        // 이후 처리
        isChartSuccss = bro.IsSuccess();
        chartBRO = bro;
    });

  • Android.PutDeviceToken()은 해당기능을 사용할 수 없습니다. 다음과 같이 사용하여야 비동기방식으로 기능을 사용할 수 있습니다.
    BackendAsync( Backend.Android.PutDeviceToken, Backend.Android.GetDeviceToken() => { 
        // 이후 처리
    });