HowToUsePlugin.md
目次
インストール方法
1. Unity パッケージのインポート
対象のプロジェクトに、DiarkisUnityPlugin.unitypackage
をインポートします。
2. 接続情報の設定
Assets/Diarkis/Prefabs/DiarkisNetworkManager
を選択し、 Inspector にDiarkisNetworkManager
のスクリプトを表示させます。
次にTransport
と書かれた項目をクリックして中身を表示し、Diarkis との接続情報を以下のように設定します。
設定項目 | 役割 | 入力例 |
---|---|---|
HttpHost | EndPoint URL の値 | asia-northeast1.diarkis.io/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
ClientKey | Client Key の値 | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX(※空でも OK) |
3. プレハブのシーンへの配置
設定を済ませたDiarkisNetworkManager
のプレハブを、シーンに配置します。
AutoStartConnect
にチェックが入っているのを確認して(※デフォルトで On になっています)、 エディタ上部にある再生ボタンをクリックします。
これで Diarkis サーバー との接続が、自動的に開始されます。
プラグインの利用方法
DiarkisNetworkManager プレハブの設定方法
DiarkisNetworkManager
は Diarkis との接続を担う重要なクラスで、必ずシーンに配置されている必要があります。
重要な設定項目として、以下のものがあります。
設定項目 | 役割 |
---|---|
Transport.HttpHost | EndPoint URL の値 |
Transport.ClientKey | Client Key の値 |
Transport.AutoRetryTimes | Diarkis サーバー との接続に失敗した際のリトライ回数 |
AutoStartConnect | Diarkis サーバー との接続を自動で開始するかどうか |
IsWaitDisconnectOnAppQuit | アプリを終了するときに Diarkis サーバーとの切断処理の完了を待つかどうか |
WaitDisconnectTime | 上記処理を待つ最大時間。この時間が過ぎた場合、アプリは強制的に終了する |
ネットワークへの接続&切断をリクエストする
Diarkis ネットワークに接続(or 切断)するには、DiarkisNetworkManager
を通して関数を呼び出します。
ネットワークへの接続&切断のレスポンスを受け取る
サーバーからの応答はイベントとして受け取ることができます。
まずイベントを発生させる為のコンポーネントをシーンに追加します。
適当なGameObject
をシーンに追加して、それにDiarkisCoreEventCallback
のコンポーネントをアタッチします。
このコンポーネントには関数を登録することができ、イベントの発生に合わせてその関数をトリガーしてくれます。
関数を登録するために、以下のようなクラスを作ります。
このスクリプトを適当なGameObject
にアタッチし、 イベント発生時に呼ばれたい関数をDiarkisCoreEventCallback
に登録します。
こうしてサーバーからのレスポンスを受け取ることができます。
各種モジュールを利用する
Diarkisには以下のモジュールが存在します。
モジュール名 | 対応するイベントコンポーネント |
---|---|
|
|
|
|
|
|
|
|
|
|
データの送信には、各種モジュールの該当する関数を呼び出します。
データの受信には、対応するイベント・コンポーネントをシーンに配置し、それに関数を登録することで受け取ることができます。
例としてRoom
モジュールを使って部屋を新規作成してみます。
Roomモジュールからリクエストを送信する
以下のコードはRoom
モジュールを使って新しい部屋を作成するコードになります。
Roomモジュールからレスポンスを受け取る
まず初めにシーン上に配置された適当なGameObject
にDiarkisRoomEventCallback
をアタッチします。
次にイベントを受け取るために、以下のようなクラスを作成します。
最後にこのスクリプトをシーン上に配置し、関数をDiarkisRoomEventCallback
のOnRoomCreate
に登録します。
これでRoom.Create
を呼び出した際の結果を、受け取ることができるようになります。
ここでは一例としてRoom
モジュールを取り上げましたが、他のモジュールの使い方も同様です。
各機能のレファレンス
Core機能
名前空間 | Diarkis |
クラス名 | DiarkisNetworkManger |
アクセス方法 | DiarkisNetworkManger.Instance |
イベントを表すインターフェイス | IDiarkisCoreEvent |
Unity用のイベントコンポーネント | DiarkisCoreEventCallback |
プロパティ一覧(Core)
プロパティ | 役割 |
---|---|
UID | このクライアントを一意に識別するUID。 |
Modules | 各種モジュール(Room, Group, Field...)。 |
メソッド一覧(Core)
メソッド | 役割 |
---|---|
IsConnected | ネットワークに接続されているかどうか。 |
Connect | ネットワークに接続する。 |
Disconnect | ネットワークから切断する。 |
イベント一覧(Core)
イベント | 役割 |
---|---|
OnNetworkConnect | ネットワークに接続した。 |
OnNetworkDisconnect | ネットワークから切断された。 |
OnNetworkException | 通信中に例外が発生した。 |
OnNetworkOffline | サーバーをシャットダウンする準備ができた。 |
OnApplicationWantsToQuit | アプリケーションを終了しようとしている。 |
Roomに関する機能
名前空間 | Diarkis.Modules |
クラス名 | DiarkisRoom |
アクセス方法 | DiarkisNetworkManger.Instance.Modules.Room |
イベントを表すインターフェイス | IDiarkisRoomEvent |
Unity用のイベントコンポーネント | DiarkisRoomEventCallback |
プロパティ一覧(Room)
プロパティ | 役割 |
---|---|
IsJoined | Room に参加しているかどうか。 |
RoomID | 部屋の ID。 |
OwnerUID | 部屋のオーナーの UID。 |
MemberUIDs | 部屋のメンバーの UID(自分&部屋オーナーを含む)。 |
メソッド一覧(Room)
メソッド | 役割 |
---|---|
Create | 部屋を作成する。 |
Join | 部屋に参加する。 |
JoinRandom | ランダムに部屋に参加する。 |
Leave | 部屋から去る。 |
GetOwnerID | 部屋オーナーの ID を取得する。 |
GetMemberIDs | 部屋メンバーの ID を取得する。 |
Broadcast | 部屋全体にデータを送信する。 |
BroadcastTo | 指定した部屋にデータを送信する。 |
MessageTo | 指定したメンバーにデータを送信する。 |
SyncObjects | 現状オブジェクトの状態を取得する。 |
UpdateObject | オブジェクトを追加・更新・削除する。 |
UpdateProperties | 部屋のプロパティを更新する。 |
GetProperties | 部屋のプロパティを取得する。 |
IncrProperty | 部屋のプロパティの値をインクリメントする。 |
GetNumberOfMembers | 部屋の人数に関する情報を取得する。 |
Register | 部屋を登録する。 |
FindRoomByType | 部屋を検索する。 |
Reserve | 部屋を予約する。 |
CancelReservation | 部屋の予約をキャンセルする。 |
Migrate | 部屋をマイグレートする。 |
Move | 部屋を移動する。 |
SendChatMessage | チャットメッセージを送信する。 |
GetChatLog | チャットログを取得する。 |
StartP2PSync | P2P 接続に切り替える為に各クライアントの接続先アドレスを取得する。 |
イベント一覧(Room)
イベント | タイプ | 対応するメソッド | 役割 |
---|---|---|---|
OnRoomCreate | Response | Create | - |
OnRoomJoin | Response | Join | - |
OnRoomLeave | Response | Leave | - |
OnRoomMemberJoin | Push | - | メンバーが加わった |
OnRoomMemberLeave | Push | - | メンバーが去った |
OnRoomMemberBroadcast | Push | Broadcast, BroadcastTo | - |
OnRoomMemberMessage | Push | MessageTo | - |
OnRoomUpdateProperties | Response | UpdateProperties | - |
OnRoomGetProperties | Response | GetProperties | - |
OnRoomGetOwnerID | Response | GetOwnerID | - |
OnRoomIncrProperty | Response | IncrProperty | - |
OnRoomIncrPropertySync | Push | IncrProperty | - |
OnRoomGetMemberIDs | Response | GetMemberIDs | - |
OnRoomRegister | Response | Register | - |
OnRoomFindRoomsByType | Response | FindRoomByType | - |
OnRoomReserve | Response | Reserve | - |
OnRoomCancelReservation | Response | CancelReservation | - |
OnRoomGetNumberOfMembers | Response | GetNumberOfMembers | - |
OnRoomChatSyncResponse | Response | SendChatMessage | - |
OnRoomChatSync | Push | SendChatMessage | - |
OnRoomChatLog | Response | GetChatLog | - |
OnRoomStartP2PSync | Push | StartP2PSync | - |
OnRoomObjectSync | Response | SyncObjects | - |
OnRoomObjectUpdate | Push | UpdateObject | - |
OnRoomOwnerChange | Push | - | オーナーが変わった |
Groupに関する機能
名前空間 | Diarkis.Modules |
クラス名 | DiarkisGroup |
アクセス方法 | DiarkisNetworkManger.Instance.Modules.Group |
イベントを表すインターフェイス | IDiarkisGroupEvent |
Unity用のイベントコンポーネント | DiarkisGroupEventCallback |
プロパティ一覧(Group)
プロパティ | 役割 |
---|---|
GroupIDs | 参加しているグループの ID 一覧。 |
IsJoined | グループに参加しているかどうか。 |
メソッド一覧(Group)
メソッド | 役割 |
---|---|
Create | グループを作成する。 |
Join | グループに参加する。 |
JoinRandom | ランダムにグループに参加する。 |
Leave | グループから去る。 |
BroadcastTo | グループにデータを送信する。 |
イベント一覧(Group)
イベント | タイプ | 対応するメソッド | 役割 |
---|---|---|---|
OnGroupCreate | Response | Create | - |
OnGroupJoin | Response | Join | - |
OnGroupLeave | Response | Leave | - |
OnGroupMemberJoin | Push | - | メンバーが加わった |
OnGroupMemberLeave | Push | - | メンバーが去った |
OnGroupMemberBroadcast | Push | BroadcastTo | - |
Fieldに関する機能
名前空間 | Diarkis.Modules |
クラス名 | DiarkisField |
アクセス方法 | DiarkisNetworkManger.Instance.Modules.Field |
イベントを表すインターフェイス | IDiarkisFieldEvent |
Unity用のイベントコンポーネント | DiarkisFieldEventCallback |
プロパティ一覧(Field)
プロパティ | 役割 |
---|---|
- | - |
メソッド一覧(Field)
メソッド | 役割 |
---|---|
SyncInit | 同期の初期化処理。 |
Sync | 同期するデータを送信する。 |
Disappear | Field から去る。 |
イベント一覧(Field)
イベント | タイプ | 対応するメソッド | 役割 |
---|---|---|---|
OnFieldResponseSyncInit | Response | SyncInit | - |
OnFieldSync | Push | Sync | - |
OnFieldDisappear | Push | Disappear 視界から誰かがいなくなった |
MatchMakerに関する機能
名前空間 | Diarkis.Modules |
クラス名 | DiarkisMatchMaker |
アクセス方法 | DiarkisNetworkManger.Instance.Modules.MatchMaker |
イベントを表すインターフェイス | IDiarkisMatchMakerEvent |
Unity用のイベントコンポーネント | DiarkisMatchMakerEventCallback |
プロパティ一覧(MatchMaker)
プロパティ | 役割 |
---|---|
RoomID | マッチメイクされた部屋のID |
メソッド一覧(MatchMaker)
メソッド | 役割 |
---|---|
IsTeamMatchmaking | チームマッチメイキングかどうか。 |
HostMatchmaking | ホストマッチメイキングをする。 |
HostTeamMatchmaking | ホストチームマッチメイキングをする。 |
ClearMatchmaking | マッチメイキングをクリアする。 |
DisbandMatchmaking | マッチメイキングを解散する。 |
Kick | メンバーをキックする。 |
ClaimReservedMatchmaking | 予約済みの部屋を取得する。 |
JoinMatchmakingFromResult | マッチメイキングに参加する。 |
LeaveMatchmaking | マッチメイキングから去る。 |
Sync | データを送信する。 |
NotifyMatchmakingCompletion | マッチメイキング完了を知らせる。 |
P2PAddressSync | P2P に関するアドレス情報を取得する。 |
SetMaxMatchMembers | マッチメイキングの人数をセットする。 |
Search | マッチメイキングの検索を開始する。 |
TeamSearch | チームマッチメイキングの検索を開始する。 |
Commit | チームマッチメイキングをするよう指示する。 |
StartBackfill | - |
イベント一覧(MatchMaker)
イベント | タイプ | 対応するメソッド | 役割 |
---|---|---|---|
OnMatchMakerKickResponse | Response | Kick | - |
OnMatchMakerHostMatchmakingResponse | Response | HostMatchmaking | - |
OnMatchMakerHostTeamMatchmakingResponse | Response | HostTeamMatchmaking | - |
OnMatchMakerAbortMatchmakingResponse | Response | ClearMatchmaking | - |
OnMatchMakerDisbandMatchmaking | Push | DisbandMatchmaking | - |
OnMatchMakerMemberLeave | Push | - | メンバーが去った |
OnMatchMakerMemberJoin | Push | - | メンバーが加わった |
OnMatchMakerMemberSync | Push | Sync | - |
OnMatchMakerJoinResponse | Response | ClaimReservedMatchmaking | - |
OnMatchMakerLeaveResponse | Response | LeaveMatchmaking | - |
OnMatchMakerComplete | Push | - | 人数が埋まった |
OnMatchMakerKick | Push | Kick | - |
OnMatchMakerSearchResponse | Response | Search | - |
OnMatchMakerTeamSearchResponse | Response | TeamSearch | - |
OnMatchMakerResultsResponse | Response | Search | - |
OnMatchMakerTeamResultsResponse | Response | TeamSearch | - |
OnMatchMakerP2PAddressSync | Push | P2PAddressSync | - |
OnMatchMakerP2PAddressSyncResponse | Response | P2PAddressSync | - |
OnMatchMakerBackfillStartResponse | Response | StartBackfill | - |
OnMatchMakerCommitResponse | Response | Commit | - |
OnMatchMakerCompleteCommit | Response | Commit | - |
OnMatchMakerTicketComplete | Push | - | - |
OnMatchMakerHostChange | Push | - | ホストが変更になった |
OnMatchMakerCancelTicket | Response | - | - |
P2Pに関する機能
名前空間 | Diarkis.Modules |
クラス名 | DiarkisP2P |
アクセス方法 | DiarkisNetworkManger.Instance.Modules.P2P |
イベントを表すインターフェイス | IDiarkisP2PEvent |
Unity用のイベントコンポーネント | DiarkisP2PEventCallback |
プロパティ一覧(P2P)
プロパティ | 役割 |
---|---|
- | - |
メソッド一覧(P2P)
メソッド | 役割 |
---|---|
IsConnected | 接続されているかどうか。 |
Connect | 接続する。 |
Disconnect | 切断する。 |
Send | データを送信する。 |
イベント一覧(P2P)
イベント | 役割 |
---|---|
OnP2PReady | - |
OnP2PFail | - |
OnP2PMessage | - |
OnP2PException | - |
最終更新