はじめに

このチュートリアルでは、Diarkis Unity SDK を使用して最小限の接続シーンを作成する手順を段階的に説明します。 以下の操作を行います:

  • Tutorials/Tutorial1-MinimalSetup にある提供済みシーンを使用する

  • ゼロから小さなスクリプトを作成する

  • 接続と切断を行う UI ボタンをバインドする

  • 基本的な Diarkis イベントを登録する

  • Diarkis ロガーを簡単に使用する

完成済みのスクリプトを提供する代わりに、このチュートリアルでは各部分を理解できるよう段階的に構築していきます。


Scene Prerequisites

Tutorial1-MinimalSetup には、以下の要素が既に含まれているはずです:

  • InputField: Host

  • InputField: ClientKey

  • InputField: UID

  • Text: Notification / Status

  • Button: Connect

  • Button: Disconnect

  • GameObject with DiarkisNetworkManager component

これらのいずれかが不足している場合は、Canvas の下に追加してください。


DiarkisNetworkManager の設定

  1. Hierarchy Viewで、new empty の GameObject を作成

    • Hierarchy View で 右クリック → [Create Empty]

    • Rename で、名前をDiarkisNetworkに変更

  2. DiarkisNetwork を選択した状態で、Diarkis network component を追加

    • インスペクターで Add Component をクリック

    • DiarkisNetworkManagerを検索し追加

  3. インスペクターで本チュートリアルの基本設定を行います

    • ConnectOnStart を無効にする

    • PreStoredHttpHostPreStoredClientKey はデフォルト値のままにする (後ほどスクリプトから UI 経由で上書きされます)

    • PreStoredServerType で希望のプロトコルを選択する

      • ほとんどの場合、UDP のままにしておく

    • Logger 設定は現時点ではデフォルト値のままにする (動作確認後、severity や 出力先 を調整可能)


Create the Network UI Manager script

次に、UI と 接続ロジック を制御するスクリプトを作成します。

  1. Unity で new C# script を作成します

    • 名前を次のように設定:TutorialMinimalTitleManager

  2. シーン内に空のGameObjectを作成します

    • 名前を次のように設定:Tutorial1Manager

  3. TutorialMinimalTitleManagerTutorial1Manager にアタッチします

スクリプトを開き、内容を以下の基本骨格で置き換えます:

このスクリプトは以下を行います:

  • UI 要素への参照を保持する

  • DiarkisNetworkManager に接続または切断のタイミングを通知する

  • Diarkis のイベントに反応する


Add UI references

UI 要素用のフィールドを宣言し、Inspector で割り当てられるようにします。

クラス内に以下を追加してください:

これらのフィールドは後で UI にリンクされます。


Register button callbacks (without logic yet)

接続ボタンが OnConnectClicked を呼び出し、切断ボタンが OnDisconnectClicked を呼び出すようにします。 まず、メソッドを宣言します(現時点では空のままです):

では、ボタンを接続するために Start メソッドを追加します:

まだ存在しない SetStatus メソッドを使用しました。次のステップで追加します。


Add a helper to update the status and buttons

以下の処理を1か所にまとめます。

  • 通知のテキストと色を制御

  • どのボタンを有効/無効にするか

この 関数 をクラスに追加してください

この時点で Start メソッドはコンパイルされ、シーンには「Disconnected」と表示され、Connect ボタンだけが有効になります(Inspector で各フィールドを接続した後)。


Bind basic Diarkis events

次に Diarkis のイベントに接続します。シンプルに実装します。

  • On UDP connect

  • On UDP disconnect

  • On HTTP error

  • On UDP fail

これらのコールバックで UI を更新し、基本情報を ログ に記録します。 Start メソッドを以下のように拡張します:

実施内容の簡潔な説明: DiarkisNetworkManager.GetEventHandler(_interfaceName) は接続用のイベントハンドラを返します。

  • OnUDPConnect は UDP 接続が確立(または失敗)した際に呼び出されます。

  • OnUDPDisconnect は接続が切断されたときに呼び出されます。

  • OnHttpError は HTTP 認証が失敗した場合に呼び出されます。

  • OnUDPFail は UDP 接続の確立に失敗した場合に呼び出されます。

これを所有者として渡すことで、後でコールバックを自動的に登録解除できるようにします。


Add simple logger helpers

Logging をシンプルに保つため、2つのヘルパーメソッドを追加します。これらはDiarkisNetworkManager が既に管理しているロガーを使用します。 追加:

説明: ここではロガーを設定せず、単に利用します。 ロガーの設定(severity レベル、ログの書き込み先)は、DiarkisNetworkManager インスペクタ内の DiarkisLoggerManager を通じて制御されます。


Implement Connect logic

ユーザーが接続ボタンをクリックした際に実際に接続するロジックを追加します。

以下の処理を行います

  • 入力フィールドからHostClientKeyUID を読み取る

  • それらを DiarkisNetworkManager の設定に割り当てる

  • DiarkisNetworkManager.Connect を呼び出す

OnConnectClickedを修正

注記: 実行時に PreStoredHttpHostPreStoredClientKeyChosenUID を上書きします。 UseRandomUIDfalse に設定されているため、入力フィールドからの手動 UID が使用されます。 ここでは高度なオプションは扱いません。最小限に留めることが目的です。


Implement Disconnect logic

次に、切断ボタンのハンドラを実装します。

OnUDPDisconnect(事前に登録済み)は、切断が完了した際にステータステキストを ”Disconnected” に更新します。


Unregister callbacks on destroy

オブジェクトが破棄されたとき(例えば、シーン変更時など)、このスクリプトに関連付けられたイベントコールバックを登録解除する必要があります。 追加:

コールバックを登録する際に所有者としてこれを渡したため、これでそれらを一度にすべてクリーンアップします。


Assign references in the Inspector

チュートリアル最小タイトルマネージャーを持つGameObjectを選択し、以下を割り当てます:

  • Host Input Field → HostInputField

  • ClientKey Input Field → ClientKeyInputField

  • UID Input Field → UIDInputField

  • Network State Text → NetworkStateText

  • Connect Button → ConnectButton

  • Disconnect Button → DisconnectButton


Optional: Adjust logger configuration

DiarkisNetworkManagerでGameObjectを開きます。 ロガー関連セクションでは以下を選択可能:

  • Global Logger の Severity(例:DebugまたはInfo)。Custom Logger の severity が無効の場合にのみ有効

  • Unityコンソールへのログ表示の有無

  • ファイルへのログ出力の有無

  • 画面オーバーレイへのログ表示の有無

本チュートリアルにおける推奨設定:

  • Severity DebugまたはInfo

  • Log to Unity Console: enabled


Test the scene

  1. プレイモードに入ります。

  2. ゲームビューで以下を入力:

    • ホスト:Diarkis HTTPエンドポイント(例:127.0.0.1:7000)

    • クライアントキー:サーバーで要求される場合のみ入力、不要なら空欄

    • UID:任意の識別子(例:unity-tutorial-1)

  3. Connect を押下

  4. Disconnect を押下

    1. Status: "Disconnecting..." then "Disconnected"

    2. Buttons revert (Connect enabled, Disconnect disabled)


Final script listing (for reference)

以下は、これまでの手順で組み立てた完全なスクリプトです。 各手順を正しく実行した場合は再度貼り付ける必要はありませんが、エラー発生時の比較に役立ちます。


次のステップ

動作する最小限の接続シーンができたので、次のことができます:

  • このパターンを自身のタイトル画面やロビーシーンで再利用する

  • UIを拡張する(最後に使用した設定を保存する、より詳細なエラーメッセージを表示するなど)

  • 次のチュートリアル(Room、MatchMaker、Field など)に進む(接続方法と基本イベントの処理方法を理解していることを前提とします)


End of Document

最終更新

役に立ちましたか?