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
Assets\Diarkis\Runtime\Extension\MonoBehaviour\Callbacks\Modules\DiarkisRoomEventCallback.cs
Group
Assets\Diarkis\Runtime\Extension\MonoBehaviour\Callbacks\Modules\DiarkisGroupEventCallback.cs
Field
Assets\Diarkis\Runtime\Extension\MonoBehaviour\Callbacks\Modules\DiarkisFieldEventCallback.cs
MatchMaker
Assets\Diarkis\Runtime\Extension\MonoBehaviour\Callbacks\Modules\DiarkisMatchMakerEventCallback.cs
P2P
Assets\Diarkis\Runtime\Extension\MonoBehaviour\Callbacks\Modules\DiarkisP2PEventCallback.cs
データの送信には、各種モジュールの該当する関数を呼び出します。
データの受信には、対応するイベント・コンポーネントをシーンに配置し、それに関数を登録することで受け取ることができます。
例として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
-
最終更新