コンテンツにスキップ

チャット文字列を受信するためのコールバック登録

リモートプレイチャット機能は、ユーザーがリモートプレイ中に文字列を入力すると、それがホストPCのゲームチャットウィンドウに送信されるように実装できます。

1) ユーザーが以下に示すウェブのリモートプレイ専用のテキストボックスに文字列を入力し、エンターキーを押すと、その文字列がホストPCゲームに送信されます。 * リモートプレイの最大入力長は150文字で、読み方向はLTR(左から右)とRTL(右から左)です。

2) ホストPCゲームでは、文字列は事前に登録されたコールバック関数を通じて受信されます。

3) ホストPCゲームでは、対応する文字列がゲームチャットウィンドウに渡されます。

コールバック関数の登録

リモートプレイのチャット機能を使用するには、リモートプレイプラグインをインポートした後にコールバック関数を登録する必要があります。

コールバック関数を登録することは、リモートプレイ中にチャット機能が使用できる準備が整ったことを意味し、ゲームは各ゲーム環境に応じてリモートプレイから受信した文字列をチャット機能に適用できます。

ゲーム内のコールバック関数を通じて受け取った文字列は、UTF-8でエンコードされたデータであり、Base64に変換されています。さらに、読み取り方向情報が含まれており、多言語サポートが可能です。

以下のようにHiveRemotePlayManager.RegisterCallbackにコールバック関数を登録します。

using AOT; // MonoPInvokeCallback 때문에 필요

public class {유저 Game에서 사용하는 클래스} : MonoBehaviour {
#if !UNITY_EDITOR && UNITY_STANDALONE_WIN
    [MonoPInvokeCallback (typeof(HiveRemotePlayManager.RemotePlayCallbackType))]
    public static void RegisterRemoteCallbackFunction(int type, string remotePlayJsonData)
    {
        Debug.Log("REMOTE Callback DATA :" + remotePlayJsonData); // RemoteSDK 에서 보내주는 json data 수신.
    }
#endif

    void Start() {
#if !UNITY_EDITOR && UNITY_STANDALONE_WIN
        HiveRemotePlayManager.RegisterCallback(RegisterRemoteCallbackFunction);
#endif
    }
}

チャット文字列プロトコル

ゲーム内のコールバック関数を通じて受信したチャット文字列のプロトコルは次のとおりです。

ウェブ - クライアント JSON プロトコル

キー 値のタイプ 説明 ETC
version version number Json バージョン情報 例を参照
eventType eventType string イベントタイプ - メッセージ項目のみ存在 例を参照
eventValue eventValue object イベント値オブジェクト 例を参照
eventValue - value eventValue - value string イベント値 例を参照
eventValue - action eventValue - action string イベントアクション 例を参照
etc etc object 拡張目的のため 例を参照

チャット文字列データの例

ゲーム内のコールバック関数を通じて受信したチャット文字列は、以下のJSONデータ形式を持っています。

{
    "version"        : "1.0.2411.0",
    "eventType"       : "Message" ,
    "eventValue"     : {
                            "value"  : "Something Message",
                            "action" : "LTR | RTL"
                       },
    "etc"            : { }
}
// value    : Base64  (UTF-8 문장) 인코딩
// action   : LTR (아랍어를 제외한 문자) | RTL (아랍어)