Unity SDK

Game Chat Unity SDKの使い方について説明します。

システム要件

Game Chat Unity SDKを使用するためのシステム要件は、以下のとおりです。

  • 最小スペック: 2018.4.0以上 (下位バージョンの Unityへの対応が必要な場合、[email protected] までご連絡ください。)

  • 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でプロジェクトを構成する方法は以下のとおりです。

  1. 設定 > SDKのダウンロードメニューを順にクリックし、Unity SDKのダウンロードをクリックします。

  2. Unityプログラムを実行し、プロジェクトを作成します。

  3. Unityで、Assets > Import Package > Custom Package...メニューを順にクリックします。

  4. ダッシュボードでダウンロードした「GameChatUnitySDK_xxxxxxxx」ファイルを読み込みます。

  5. パッケージにあるすべてのファイルを選択し、 [Import] ボタンをクリックします。

  6. プロジェクトを保存します。

認証

Game Chatインスタンスの初期化

Game Chatプロジェクト IDを用いて Game Chatインスタンスを初期化するには、以下のコードを使用します。

ID
type
desc

PROJECT_ID

string

プロジェクト ID

Game Chatソケットサーバとの接続

Game Chatソケットサーバに接続する方法は以下のとおりです。

  1. チャットユーザー IDを用いてGame Chatソケットサーバにアクセスします。

    • Game Chatプロジェクトでチャットユーザー IDは固有の値です。

  2. APIを使用するためのトークンの値を取得します。

    • GameChat.connect以降に更新されたトークンの値を確認できます。

  3. トークンの値を取得した後、現在アクセス中のデバイスに対するチャットユーザー情報が更新されたのか確認します。

    • 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ガイドarrow-up-rightをご参照ください。

メッセージ

(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 Translationarrow-up-rightサービスと連携すると使用できます。

(Received) Translation Data Class (per Unit)

ID
type
desc

detectLang

string

ソース言語コード

lang

string

ターゲット言語コード

translated

bool

翻訳の成否

message

string

結果メッセージの内容(JSON文字列)

参考

ソース言語コードとターゲット言語コードについての説明は、Papago Text Translation APIガイドarrow-up-rightをご参照ください。

ID
type
desc

CHANNEL_ID

string

チャンネル ID

SORCE_LANG

string

(送信する)テキストの言語名(auto: 自動検出) API Guidearrow-up-rightを参考

TARTGET_LANG

string

(翻訳受信する)テキストの言語コード (","で区切って、複数入力可能。 <例> "en, fr, th") Papago Text Translation APIガイドarrow-up-rightを参考

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

受信メッセージに含まれた絵文字とハイパーリンクテキストを扱いやすいようにサポートするヘルパークラスです。

  • TMP_GameChatTextUGUIは、Unityビルトインアセットの TextMeshProを拡張したクラスであるため、先に Package Managerを用いて TextMeshProをインストールする必要があります。

  • TextMeshProアセットの場合、Unity 2018.2以上のバージョンからビルトインアセットとして含まれます。

  • 絵文字スプライトシートの場合、絵文字バージョン13(Android)を基準に基本的に表示され、スプライトシートを変更してカスタマイズできます。

<例>

Last updated