Unity SDK
Game Chat Unity SDKの使い方について説明します。
システム要件
Game Chat Unity SDKを使用するためのシステム要件は、以下のとおりです。
最小スペック: 2018.4.0以上 (下位バージョンの Unityへの対応が必要な場合、cs@nbase.io までご連絡ください。)
2019.4.X / 2020.3.X / 2021.1.Xバージョンの Unityエディタのユーザーは、2019.4.29f1以上 / 2020.3.15f2以上 / 2021.1.16f1以上のバージョンを使用します(AABバージョンビルド時の Unityエディタのバグが変更されたバージョン)
SDKのインストールと環境の構成
Game Chat Unity SDKをダウンロードして、Unityでプロジェクトを構成する方法は以下のとおりです。
設定 > SDKのダウンロードメニューを順にクリックし、Unity SDKのダウンロードをクリックします。
Unityプログラムを実行し、プロジェクトを作成します。
Unityで、Assets > Import Package > Custom Package...メニューを順にクリックします。
ダッシュボードでダウンロードした「GameChatUnitySDK_xxxxxxxx」ファイルを読み込みます。
パッケージにあるすべてのファイルを選択し、 [Import] ボタンをクリックします。
プロジェクトを保存します。
認証
Game Chatインスタンスの初期化
Game Chatプロジェクト IDを用いて Game Chatインスタンスを初期化するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
PROJECT_ID | string | プロジェクト ID |
Game Chatソケットサーバとの接続
Game Chatソケットサーバに接続する方法は以下のとおりです。
チャットユーザー IDを用いてGame Chatソケットサーバにアクセスします。
Game Chatプロジェクトでチャットユーザー IDは固有の値です。
APIを使用するためのトークンの値を取得します。
GameChat.connect以降に更新されたトークンの値を確認できます。
トークンの値を取得した後、現在アクセス中のデバイスに対するチャットユーザー情報が更新されたのか確認します。
GameChat.connectのコールバックで渡される Memberは、更新されたデータです。
Game Chatソケットサーバに接続するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
USER_ID | string | チャットユーザーの固有 ID |
Game Chatサーバとの接続解除
Game Chatソケットサーバとの接続を解除するには、以下のコードを使用します。
チャットユーザー情報のアップデート
connect成功後にチャットユーザー情報を保存してアップデートするには、以下のコードを使用します。
ハンドルネームの変更
ID | type | desc |
---|---|---|
USER_ID | string | チャットユーザーの固有 ID |
NickName | string | チャットユーザーのハンドルネーム |
Profile URLの変更
ID | type | desc |
---|---|---|
USER_ID | string | チャットユーザーの固有 ID |
ProfileUrl | string | チャットユーザーの ProfileURL |
チャンネルの購読と購読解除
特定のチャンネルに対して購読または購読解除を行うには、以下のコードを使用します。
ID | type | desc |
---|---|---|
CHANNEL_ID | string | チャンネル ID |
メッセージの送信
特定のチャンネルにメッセージを送信するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
CHANNEL_ID | string | チャンネル ID |
MESSAGE | string | 送信メッセージテキスト |
MESSAGEパラメータに@[ユーザー ID]空白[メッセージ内容]を入力時
上記のケースでユーザー IDがログインした履歴がある場合、メッセージの詳細情報のうち、mentions情報はユーザー IDです。
イベントの登録と解除
Game Chatソケットサーバから受信するイベントに対し、カスタムハンドラを登録または解除するには、以下のコードを使用します。
例外事項
Game Chat APIの使用中に発生する Exceptionに対する共通処理 Classは、以下のとおりです。
Client API
チャンネルの購読
Subscription Data Class (per Unit)
ID | type | desc |
---|---|---|
id | string | 固有 ID |
channel_id | string | チャンネル ID |
user_id | string | チャットユーザーの固有 ID |
created_at | string | 作成日時 |
チャンネル購読リストを取得する
特定のチャンネルの購読データをリスト形式で取得するには、以下のコードを使用します。
チャンネル
Channel Data Class (per Unit)
ID | type | desc |
---|---|---|
id | string | チャンネル ID(固有) |
project_id | string | プロジェクト ID |
unique_id | string | 開発会社で設定できるチャンネル ID(固有) |
name | string | チャンネル名 |
user_id | string | (チャンネルを作成した)チャットユーザー ID |
created_at | string | 作成日時 |
updated_at | string | 更新日 |
チャンネルリストを取得する
プロジェクトのチャンネルデータをリスト形式で取得するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
OFFSET | int | 全体チャンネルリストから取得するチャンネルの開始位置(index) |
LIMIT | int | 取得するチャンネル数 |
チャンネルデータを取得する
チャンネル IDや固有 IDを用いてチャンネルデータを取得するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
CHANNEL_ID | string | チャンネル ID(自動作成) |
CHANNEL_UNIQUE_ID | string | チャンネル(固有)ID(カスタマイズ可能) |
チャンネルの作成と削除
プロジェクト内で新しいチャンネルを作成または削除するには、Open APIを活用します。 セキュリティ問題のため、チャンネル作成やアップデートなどは、Open APIを活用して Server to Serverで直接行うことをお勧めします。 詳細は、Game Chat APIガイドをご参照ください。
メッセージ
(Received) Message Data Class (per Unit)
ID | type | desc |
---|---|---|
message_id | string | メッセージの固有 ID |
channel_id | string | チャンネル ID |
message_type | string | メッセージタイプ |
content | string | メッセージの内容(JSON文字列) |
mentions | string | メンション(タグ) |
created_at | string |
メッセージリストを取得する
特定のチャンネルに対するメッセージデータをリスト形式で取得するには、以下のコードを使用します。
ID | type | desc |
---|---|---|
CHANNEL_ID | string | チャンネル ID |
OFFSET | string | 全体メッセージリストから取得するメッセージの開始位置 |
LIMIT | string | 取得するメッセージ数 |
SEARCH | string | メッセージ検索基準キー。 <例> content.text 空の文字列を伝達する場合、全体検索 |
QUERY | string | メッセージ検索の値。 完全一致のみ検索可能。 空の文字列を伝達する場合、全体検索 |
SORT | string | メッセージのソート順序(デフォルト: 降順 - 最新順) (オプション: 昇順) |
メッセージの翻訳
自動翻訳機能が有効化されている場合、任意のテキストを指定した言語に翻訳できます。 自動翻訳機能は、Papago Translationサービスと連携すると使用できます。
(Received) Translation Data Class (per Unit)
ID | type | desc |
---|---|---|
detectLang | string | ソース言語コード |
lang | string | ターゲット言語コード |
translated | bool | 翻訳の成否 |
message | string | 結果メッセージの内容(JSON文字列) |
参考
ソース言語コードとターゲット言語コードについての説明は、Papago Text Translation APIガイドをご参照ください。
ID | type | desc |
---|---|---|
CHANNEL_ID | string | チャンネル ID |
SORCE_LANG | string | (送信する)テキストの言語名(auto: 自動検出) API Guideを参考 |
TARTGET_LANG | string | (翻訳受信する)テキストの言語コード (","で区切って、複数入力可能。 <例> "en, fr, th") Papago Text Translation APIガイドを参考 |
TEXT | string | 送信するテキスト |
チャットユーザー
(Received) Member Data Class (per Unit)
ID | type | desc |
---|---|---|
id | string | チャットユーザーの固有 ID |
project_id | string | ログインした Game Chatプロジェクト ID |
nickname | string | チャットユーザーのハンドルネーム |
profile_url | string | プロフィール画像 URL |
country | string | アクセスした国 |
remoteip | string | アクセス IPアドレス |
adid | string | 広告識別子 |
device | string | アクセスデバイスの環境 |
network | string | アクセスネットワークのタイプ (セルラー、Wi-Fi) |
version | string | アクセスアプリのバージョン |
model | string | アクセスデバイスのモデル |
logined_at | string | ログインした日 |
created_at | string | チャットユーザーの作成日時 |
updated_at | string | チャットユーザー情報の更新日 |
チャットユーザー情報のアップデート
チャットサーバのユーザー情報をアップデートできます。
ID | type | desc |
---|---|---|
MEMBER_ID | string | チャットユーザーの固有 ID |
NAME | string | チャットユーザーのハンドルネームまたは名前 |
PROFILE | string | プロフィール画像 URL |
GameChatExtension (Emoji, HyperLink)
受信メッセージに含まれた絵文字とハイパーリンクテキストを扱いやすいようにサポートするヘルパークラスです。
TMP_GameChatTextUGUIは、Unityビルトインアセットの TextMeshProを拡張したクラスであるため、先に Package Managerを用いて TextMeshProをインストールする必要があります。
TextMeshProアセットの場合、Unity 2018.2以上のバージョンからビルトインアセットとして含まれます。
絵文字スプライトシートの場合、絵文字バージョン13(Android)を基準に基本的に表示され、スプライトシートを変更してカスタマイズできます。
<例>
Last updated