Game > Gamebase > Unity Developer's Guide > UI

ImageNotice

コンソールにイメージを登録した後、ユーザーに告知を表示できます。

ImageNotice Example

Show ImageNotices

イメージ告知を画面に表示します。

API

Supported Platforms UNITY_IOS UNITY_ANDROID UNITY_STANDALONE

static void ShowImageNotices(GamebaseRequest.ImageNotice.Configuration configuration, GamebaseCallback.ErrorDelegate closeCallback, GamebaseCallback.GamebaseDelegate<string> eventCallback = null)

Example

public void ShowImageNotices()
{
    Gamebase.ImageNotice.ShowImageNotices(
        null,
        (error) =>
        {
            // Called when the entire imageNotice is closed.
            ...

        },
        (scheme, error) =>
        {
            // Called when custom event occurred.
            ...
        });        
}

Custom ImageNotices

ユーザー設定イメージ告知を画面に表示します。 GamebaseRequest.ImageNotice.Configurationでユーザー設定イメージ告知を作成できます。

Example

public void ShowImageNotices(int colorR = 0 , int colorG = 0, int colorB = 0, int colorA = 128, long timeOut = 5000)
{
    GamebaseRequest.ImageNotice.Configuration configuration = new GamebaseRequest.ImageNotice.Configuration();
    configuration.colorR = colorR;
    configuration.colorG = colorG;
    configuration.colorB = colorB;
    configuration.colorA = colorA;
    configuration.timeOut = timeOut;

    Gamebase.ImageNotice.ShowImageNotices(
        configuration,
        (error) =>
        {
            // Called when the entire imageNotice is closed.
            ...

        },
        (scheme, error) =>
        {
            // Called when custom event occurred.
            ...
        });        
}

GamebaseRequest.ImageNotice.Configuration

Parameter Values Description
colorR 0~255 バックグラウンドの色R
colorG 0~255 バックグラウンドの色G
colorB 0~255 バックグラウンドの色B
colorA 0~255 バックグラウンドの色Alpha
timeoutMS long イメージ告知最大ローディング時間(単位:millisecond)
default:5000

Close ImageNotices

closeImageNotices APIを呼び出して現在表示中のイメージ告知を全て終了できます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID UNITY_STANDALONE

static void CloseImageNotices()

Terms

Gamebaseコンソールに設定した約款を表示します。

TermsView Example

showTermsView APIは、Webビューで約款ウィンドウを表示します。 GameのUIに合った約款ウィンドウを直接作成したい場合は、queryTerms APIを呼び出して、 Gamebaseコンソールに設定した約款項目を呼び出すことができます。 ユーザーが約款に同意した場合、項目別の同意有無をupdateTerms APIを介してGamebaseサーバーへ送信してください。

showTermsView

約款ウィンドウを画面に表示します。 ユーザーが約款に同意した場合、同意の有無をサーバーに登録します。 約款に同意した場合、showTermsView APIを再度呼び出しても約款ウィンドウが表示されず、すぐに成功コールバックがリターンされます。 ただし、Gamebaseコンソールで「約款の再同意」項目を必要に変更した場合は、ユーザーが再度約款に同意するまでは約款ウィンドウが表示されます。

Optionalパラメータ

  • GamebaseTermsConfiguration : GamebaseTermsConfigurationオブジェクトを介して強制的に約款同意ウィンドウを表示するかどうかなどの設定を変更できます。
  • callback:約款に同意した後、約款ウィンドウが終了する時、ユーザーにコールバックで伝えます。コールバックで返されたGamebaseResponse.DataContainerオブジェクトはGamebaseResponse.Push.PushConfigurationに変換してログイン後、Gamebase.Push.registerPush APIに使用できます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID

static void ShowTermsView(GamebaseCallback.GamebaseDelegate<GamebaseResponse.DataContainer> callback)
static void ShowTermsView(GamebaseRequest.Terms.GamebaseTermsConfiguration configuration, GamebaseCallback.GamebaseDelegate<GamebaseResponse.DataContainer> callback)

GamebaseRequest.Terms.GamebaseTermsConfiguration

API Mandatory(M) / Optional(O) Description
forceShow O 約款に同意した場合、showTermsView APIを再度呼び出しても約款ウィンドウが表示されませんが、これを無視して強制的に約款ウィンドウを表示します。
default : false
enableFixedFontSize O 約款ウィンドウの文字サイズを固定するかどうかを決定します。
default : false
Android Only

GamebaseResponse.Terms.ShowTermsViewResult | Parameter | Values | Description | | ---------------------- | --------------------------------| ------------------- | | isTermsUIOpened | bool | true:約款ウィンドウが表示され、ユーザーが同意して約款ウィンドウが終了しました。
false:すでに約款に同意していて約款ウィンドウが表示されずに約款ウィンドウが終了しました。 | | pushConfiguration | GamebaseResponse.Push.PushConfiguration | isTermsUIOpenedが trueで、約款にプッシュ受信同意有無を追加した場合、pushConfigurationは常に有効なオブジェクトを持ちます。
そうでない場合はnullです。
pushConfigurationが有効なとき、pushConfiguration.pushEnabled値は常にtrueです。 |

ErrorCode

Error Error Code Description
NOT_INITIALIZED 1 Gamebaseが初期化されていません。
LAUNCHING_SERVER_ERROR 2001 ローンチサーバーからダウンロードした項目に約款関連内容がない場合に発生するエラーです。
正常な状況ではないため、Gamebase担当者にお問い合わせください。
UI_TERMS_ALREADY_IN_PROGRESS_ERROR 6924 以前に呼び出されたTerms APIがまだ完了していません。
しばらくしてから再度試行してください。
UI_TERMS_ANDROID_DUPLICATED_VIEW 6925 約款Webビューが終了していないのに再び呼び出されました。
WEBVIEW_TIMEOUT 7002 約款Webビューの表示中にタイムアウトが発生しました。
WEBVIEW_HTTP_ERROR 7003 約款Webビューのオープン中にHTTPエラーが発生しました。

Example

static GamebaseResponse.Push.PushConfiguration savedPushConfiguration = null;

public void SampleShowTermsView()
{
    var configuration = new GamebaseRequest.Terms.GamebaseTermsConfiguration
    {
        forceShow = true
    };
    Gamebase.Terms.ShowTermsView(configuration, (data, error) => 
    {
        if (Gamebase.IsSuccess(error) == true)
        {
            Debug.Log("ShowTermsView succeeded.");

            GamebaseResponse.Terms.ShowTermsViewResult result = GamebaseResponse.Terms.ShowTermsViewResult.From(data);

            // Save the 'PushConfiguration' and use it for Gamebase.Push.RegisterPush() after Gamebase.Login().
            savedPushConfiguration = result.pushConfiguration;

            // Wheter the TermsUI was displayed.
            bool isTermsUIOpened = result.isTermsUIOpened;
        }
        else
        {
            Debug.Log(string.Format("ShowTermsView failed. error:{0}", error));
        }
    });
}

public void AfterLogin()
{
    // Call RegisterPush with saved PushConfiguration.
    if (savedPushConfiguration != null)
    {
        Gamebase.Push.RegisterPush(savedPushConfiguration, (error) =>
        {
            ...
        });
    }
}

queryTerms

Gamebaseは単純な形式のWebビューで約款を表示します。 ゲームUIに合った約款を直接作成したい場合は、queryTerms APIを呼び出してGamebaseコンソールに設定した約款情報をダウンロードして活用できます。

ログイン後に呼び出す場合は、ゲームユーザーが約款に同意したかどうかも一緒に確認できます。

[注意]

  • GamebaseResponse.Terms.ContentDetail.requiredがtrueの必須項目は、Gamebaseサーバーに保存されないため、agreed値は常にfalseが返されます。
    • 必須項目は、常にtrueで保存されるしかないので、保存する意味がないためです。
  • プッシュ受信同意有無もGamebaseサーバーに保存されないため、agreed値は常にfalseが返されます。
    • ユーザーのプッシュ受信同意有無は、Gamebase.Push.QueryPush APIで確認してください。
  • コンソールで「基本約款設定」をしない場合、約款言語と異なる国コードで設定された端末からqueryTerms APIを呼び出した場合、UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY(6922)エラーが発生します。
    • コンソールで「基本約款設定」を行ったり、UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY(6922)エラーが発生した時は、約款を表示しないように処理してください。

Requiredパラメータ

  • callback:API呼び出し結果をユーザーにコールバックで伝えます。コールバックで返されたGamebaseResponse.Terms.QueryTermsResultでコンソールに設定された約款情報を取得できます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID

static void QueryTerms(GamebaseCallback.GamebaseDelegate<GamebaseResponse.Terms.QueryTermsResult> callback)

ErrorCode

Error Error Code Description
NOT_INITIALIZED 1 Gamebaseが初期化されていません。
UI_TERMS_NOT_EXIST_IN_CONSOLE 6921 約款情報がコンソールに登録されていません。
UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY 6922 端末国コードに合った約款情報がコンソールに登録されていません。

Example

public void SampleQueryTerms()
{
    Gamebase.Terms.QueryTerms((data, error) => 
    {
        if (Gamebase.IsSuccess(error) == true)
        {
            Debug.Log("QueryTerms succeeded.");
        }
        else
        {
            Debug.Log(string.Format("QueryTerms failed. error:{0}", error));
        }
    });
}

GamebaseResponse.Terms.QueryTermsResult

Parameter Values Description
termsSeq int 約款全体KEY。
updateTerms APIを呼び出す時に必要な値です。
termsVersion string 約款のバージョン。
updateTerms APIを呼び出す時に必要な値です。
termsCountryType string 約款タイプ。
- KOREAN:韓国の約款
- GDPR :ヨーロッパの約款
- ETC:その他の約款
contents List< ContentDetail > 約款項目情報

GamebaseResponse.Terms.ContentDetail

Parameter Values Description
termsContentSeq int 約款項目KEY
name string 約款項目名
required bool 必須同意有無
agreePush string 広告性プッシュ同意有無。
- NONE :同意しない
- ALL :全て同意
- DAY :1週間プッシュ同意
- NIGHT :夜間プッシュ同意
agreed bool 該当約款項目のユーザー同意有無。
node1DepthPosition int 1段階項目表示順序。
node2DepthPosition int 2段階項目表示順序。
ない場合は-1
detailPageUrl string 約款詳細表示URL。
ない場合はnull。

updateTerms

queryTerms APIでダウンロードした約款情報でUIを直接作った場合は、 ゲームユーザーが約款に同意した内容をupdateTerms APIを介してGamebaseサーバーへ送信してください。

任意約款同意をキャンセルするように、約款に同意した内容を変更する目的で活用できます。

[注意]

プッシュ受信同意有無は、Gamebaseサーバーに保存されません。 プッシュ受信同意有無は、ログイン後にGamebase.Push.registerPush APIを呼び出して保存してください。

Requiredパラメータ

  • configuration :サーバーに登録するユーザーの任意約款情報です。

Optionalパラメータ

  • callback:任意約款情報をサーバーに登録した後、ユーザーにコールバックで伝えます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID

static void UpdateTerms(GamebaseRequest.Terms.UpdateTermsConfiguration configuration, GamebaseCallback.ErrorDelegate callback)

ErrorCode

Error Error Code Description
NOT_INITIALIZED 1 Gamebaseが初期化されていません。
UI_TERMS_UNREGISTERED_SEQ 6923 登録されていない約款Seq値を設定しました。
UI_TERMS_ALREADY_IN_PROGRESS_ERROR 6924 以前に呼び出されたTerms APIがまだ完了していません。
しばらくしてから再度試行してください。

Example

public void SampleUpdateTerms()
{            
    List<GamebaseRequest.Terms.Content> list = new List<GamebaseRequest.Terms.Content>();
    list.Add(new GamebaseRequest.Terms.Content()
    {
        termsContentSeq = 0,
        agreed = true
    });

    Gamebase.Terms.UpdateTerms(
        new GamebaseRequest.Terms.UpdateTermsConfiguration()
        {
            termsSeq = 0,
            termsVersion = "1.0.0",
            contents = list
        }
        ,
        (error) =>
        {
            if (Gamebase.IsSuccess(error) == true)
            {
                Debug.Log("UpdateTerms succeeded.");
            }
            else
            {
                Debug.Log(string.Format("UpdateTerms failed. error:{0}", error));
            }
        });
}

GamebaseRequest.Terms.UpdateTermsConfiguration

Parameter Mandatory(M) / Optional(O) Values Description
termsVersion M String 約款のバージョン。
queryTerms APIを呼び出してダウンロードした値を伝達する必要があります。
termsSeq M int 約款全体KEY。
queryTerms APIを呼び出してダウンロードした値を伝達する必要があります。
contents M List< Content > 任意約款ユーザー同意情報

GamebaseRequest.Terms.Content

Parameter Mandatory(M) / Optional(O) Values Description
termsContentSeq M int 任意約款項目KEY
agreed M bool 任意約款項目同意有無

IsShowingTermsView

現在約款ウィンドウが画面に表示されているかどうかを知ることができます。

API

static bool IsShowingTermsView()

Example

public void SampleIsShowingTermsView()
{
    bool isShowingTermsView = Gamebase.Terms.IsShowingTermsView();
    Debug.Log(string.Format("isShowingTermsView: {0}", isShowingTermsView));
}

Webview

Show WebView

WebViewを表示します。

Requiredパラメーター
  • url:パラメーターで送信されるurlは、有効な値でなければなりません。
Optionalパラメーター
  • configuration:GamebaseWebViewConfigurationでWebViewのレイアウトを変更することができます。
  • closeCallback:WebViewが終了する際に、ユーザーにコールバックで知らせます。
  • schemeList:ユーザーの求めるカスタムSchemeのリストを指定します。
  • schemeEvent:schemeListに指定したカスタムスキームを含むurlをコールバックで知らせます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID UNITY_STANDALONE

static void ShowWebView(string url, GamebaseRequest.Webview.GamebaseWebViewConfiguration configuration = null, GamebaseCallback.ErrorDelegate closeCallback = null, List<string> schemeList = null, GamebaseCallback.GamebaseDelegate<string> schemeEvent = null)

スタンドアローン(standalone)では、WebViewAdapterでログインをサポートし、WebViewが開かれている時は、UIで入力されるイベントをブロッキング(blocking)しません。

Example

private void SchemeEvent(string scheme, GamebaseError error)
{
    Debug.Log(string.Format("[SchemeEvent] scheme:{0}", scheme));
}

private void CloseCallback(GamebaseError error)
{
    Debug.Log("CloseCallback");
}

public void ShowWebView()
{
    GamebaseRequest.Webview.GamebaseWebViewConfiguration configuration = new GamebaseRequest.Webview.GamebaseWebViewConfiguration();
     configuration.title = "Title";
     configuration.orientation = GamebaseScreenOrientation.Portrait;
     configuration.colorR = 128;
     configuration.colorG = 128;
     configuration.colorB = 128;
     configuration.colorA = 255;
     configuration.barHeight = 40;
     configuration.buttonVisible = true;

    var schemeList = new List<string>() { "customScheme://openBrowser" };

    Gamebase.Webview.ShowWebView("https://www.toast.com/", configuration, CloseCallback, schemeList, SchemeEvent);
}

GamebaseWebViewConfiguration

Parameter Values Description
title string WebViewのタイトル
orientation GamebaseScreenOrientation.UNSPECIFIED 未指定(default)
GamebaseScreenOrientation.PORTRAIT 縦モード
GamebaseScreenOrientation.LANDSCAPE 横モード
GamebaseScreenOrientation.LANDSCAPE_REVERSE 横モードを180度回転
contentMode
(iOS専用)
GamebaseWebViewContentMode.RECOMMENDED 現在プラットフォーム推薦ブラウザ(default)
GamebaseWebViewContentMode.MOBILE モバイルブラウザ
GamebaseWebViewContentMode.DESKTOP デスクトップブラウザ
colorR 0~255 ナビゲーションバーの色相R
default : 18
colorG 0~255 ナビゲーションバーの色相G
default : 93
colorB 0~255 ナビゲーションバーの色相B
default : 230
colorA 0~255 ナビゲーションバーの色相Alpha
default : 255
barHeight height ナビゲーションバーの高さ
Android Only
isNavigationBarVisible true or false ナビゲーションバー有効/無効
default : true
isBackButtonVisible true or false 戻るボタン有効/無効
default : true
backButtonImageResource ID of resource 戻るボタンのイメージ
closeButtonImageResource ID of resource 閉じるボタンのイメージ
enableFixedFontSize
(Android専用)
true or false 約款ウィンドウの文字サイズを固定するかどうかを決定します。
default: false
renderOutSideSafeArea
(Android専用)
true or false Safe Area領域の外までレンダリングするかどうかを決定します。
default: false

[TIP]

iPadOS 13以上でWebViewは基本的にデスクトップモードです。 contentMode =GamebaseWebViewContentMode.MOBILE設定でモバイルモードに変更できます。

Close WebView

次のAPIを利用して表示されているWebViewを閉じることができます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID UNITY_STANDALONE

static void CloseWebview()

ExampleCloseWebview

public void CloseWebview()
{
    Gamebase.Webview.CloseWebview();
}

Open External Browser

次のAPIを通じて、外部ブラウザを開くことができます。パラメーターで送信されるurlは、有効な値でなければなりません。

API

Supported Platforms UNITY_IOS UNITY_ANDROID UNITY_STANDALONE UNITY_WEBGL UNITY_EDITOR

static void OpenWebBrowser(string url)

Example

public void OpenWebBrowser(string url)
{
    Gamebase.Webview.OpenWebBrowser(url);
}

Alert

システム通知を表示することができます。 システム通知にコールバックを登録することもできます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID

static void ShowAlert(string title, string message)
static void ShowAlert(string title, string message, GamebaseCallback.VoidDelegate buttonCallback)

Example

public void ShowAlertD()
{
    Gamebase.Util.ShowAlert
    (
        "Title",
        "Message"
    );
}

public void ShowAlertDialog()
{
    Gamebase.Util.ShowAlert
    (
        "Title",
        "Message",
        () => {
                    Debug.Log("ButtonClick");
              }
    );
}

Toast

次のAPIを使用して簡単にメッセージを表示することができます。

API

Supported Platforms UNITY_IOS UNITY_ANDROID

static void ShowToast(string message, int duration)
static void ShowToast(string message, GamebaseUIToastType type)

Example

public void ShowToast(string message, int duration)
{
    Gamebase.Util.ShowToast(
        message,
        duration
        );
}
public void ShowToast(string message, GamebaseUIToastType type)
{
    Gamebase.Util.ShowToast(
        message,
        type
        );
}

Error Handling

Error Error Code Description
UI_IMAGE_NOTICE_TIMEOUT 6901 イメージ告知の表示中タイムアウトが発生しました。
UI_UNKNOWN_ERROR 6999 不明なエラーです(定義されていないエラーです)。
  • 全体のエラーコードは、次のドキュメントをご参考ください。
TOP