AboutClass

フォルダ構造

Runtime
├── Client
└── Extension
    ├── Auth
    ├── DiarkisNetworkManager.cs → 1. ライブラリ本体
    ├── DiarkisUID.cs → 2. UID を表すクラス
    ├── Character → 3. キャラクタ位置同期
    │   ├── CharacterMoveData.cs
    │   ├── CharacterSyncData.cs
    │   └── DiarkisCharacter.cs
    ├── Data → 4. メッセージ送受信のメッセージタイプ
    │   └── DiarkisMessageData.cs
    ├── Events → 5. イベントシステム
    │   ├── Callbacks
    │   │   ├── IDiarkisCmdEvent.cs
    │   │   ├── IDiarkisCoreEvent.cs
    │   │   └── Modules
    │   │       ├── IDiarkisFieldEvent.cs
    │   │       ├── IDiarkisGroupEvent.cs
    │   │       ├── IDiarkisMatchMakerEvent.cs
    │   │       ├── IDiarkisP2PEvent.cs
    │   │       └── IDiarkisRoomEvent.cs
    │   ├── DiarkisEvent.cs
    │   ├── DiarkisEventHandler.cs
    │   └── IDiarkisEvent.cs
    ├── Transport → 6. トランスポート層
    │   └── DiarkisTransport.cs
    ├── Modules → 7. 各種モジュール
    │   ├── DiarkisModule.cs
    │   ├── DiarkisModuleHandler.cs
    │   └── DiarkisModules
    │       ├── DiarkisField.cs
    │       ├── DiarkisGroup.cs
    │       ├── DiarkisMatchMaker.cs
    │       ├── DiarkisP2P.cs
    │       └── DiarkisRoom.cs
    ├── Lib → 8. 追加のライブラリ
    │   └── Serialization.cs
    └── MonoBehaviour → 9. Unity 用の実装
        ├── Callbacks → 9-1. Unity 用イベントシステム
        │   ├── DiarkisCoreEventCallback.cs
        │   ├── DiarkisEventCallback.cs
        │   └── Modules
        │       ├── DiarkisFieldEventCallback.cs
        │       ├── DiarkisGroupEventCallback.cs
        │       ├── DiarkisMatchMakerEventCallback.cs
        │       ├── DiarkisP2PEventCallback.cs
        │       └── DiarkisRoomEventCallback.cs
        └── Replication → 9-2. Unity 用レプリケーションシステム
            ├── DiarkisGameObjectWrapper.cs
            ├── DiarkisRepInstanceHandler.cs
            ├── Field
            │   ├── DiarkisFieldRepManager.cs
            │   └── IDiarkisFieldGameObject.cs
            └── Room
                ├── DiarkisGameObject.cs
                ├── DiarkisRoomRepManager.cs
                └── IDiarkisGameObject.cs

1. DiarkisNetworkManger について

DiarkisNetworkManagerはライブラリ本体を表します。

内部には以下のものがあります。

名前役割

DiarkisEventHandler

モジュール間の通信を担うイベントシステム

DiarkisTransport

トランスポート層(UDP & TCP)

DiarkisModuleHandler

各種モジュール

DiarkisNetworkMangerの図

2. DiarkisUID について

クライアントを一意に識別するIDを表します。

3. キャラクター位置同期について

キャラクター位置同期関連のクラスが含まれます。

4. メッセージ送受信のメッセージ・タイプについて

メッセージ送受信の時にメッセージ・タイプを指定するクラスが含まれます。

5. イベント・システムについて

モジュール間の通信を担うイベント・システムを表し、DiarkisEventHandlerが本体となります。

内部にはイベント情報をため込むQueueが存在し、 それを受け取る為のインスタンスを登録できるようになっています。

6. トランスポート層について

UDP or TCP による接続を表します。

7. 各種モジュールについて

DiarkisModuleHandlerが本体で、各種モジュールを表します。

クラス名内部で持つクライアントライブラリのクラス名

DiarkisRoom

Room

DiarkisGroup

Group

DiarkisField

Field

DiarkisMatchMaker

MatchMaker

DiarkisP2P

P2P

内部に存在するクライアントライブラリの動作に合わせて、 上記イベントシステム(5.)のイベントを発火するのが主な役割になります。

他にも、一部データをキャッシュしたり、 クライアント・ライブラリの機能を補佐する役割もあります。

8. 追加のライブラリについて

データをシリアライズ(&デシリアライズ)するためのライブラリが含まれます。

9. Unity用の実装

このフォルダ(Runtime/Extension/MonoBehaviour)以下には、 Unity に関する実装が含まれます。

9-1. Unity 用イベントシステム

イベントシステムを、Unity のコンポーネントとして実装したものになります。

9-2. Unity 用レプリケーションシステム

Unity を使った、キャラクター位置同期の実装例になります。

RoomFieldの機能に対応します。

最終更新