v1.2.9での新機能
主な変更点:
すべての変更点のリストは、ここでログを確認してください。
新しいBoltMatchmakingユーティリティクラス
Photon Boltのマッチメイキング機能の向上、Boltセッションを処理するための一貫したAPIの提供、また弊社のクラウドサービスを利用したルーム作成と参加を実現するため、必要な手順をすべて実行する新しいクラスをこのバージョンに含めました:つまり、BoltMatchmaking
です。
このユーティリティクラスの主なAPIと、各メソッドの簡単な説明を以下に記載します:
BoltMatchmaking.CurrentSession
: このピアが接続している現在のセッションを取得します。これは、たとえばカスタムプロパティなどのセッションの補足情報を取得したい場合に有用です。BoltMatchmaking.CreateSession(string sessionID, IProtocolToken token, string sceneToLoad)
: 現在実行中のプラットフォームを使用してセッションを作成します。ルーム作成時にロードされるよう、任意でプロトコルトークン(またはPhotonRoomProperties
)とシーン識別子を渡すことができます。BoltMatchmaking.UpdateSession(IProtocolToken token)
: 現在のセッションのコンフィグレーションをアップデートします。このメソッドを呼び出すには、ローカルピアはサーバー内に存在する必要があります。BoltMatchmaking.JoinSession(string sessionID, IProtocolToken token)
: セッションに名前で参加します。セッションの作成に使用したものと同じセッション識別子を使用して、直ちにセッションに参加できます。BoltMatchmaking.JoinSession(UdpSession session, IProtocolToken token)
:UdpSession
をリファレンスとして使用し、セッションに参加します。UpdSession
の検索には、SessionListUpdated
コールバックを使用するか、またはBoltNetwork.SessionList
を参照します。BoltMatchmaking.JoinRandomSession(IProtocolToken token)
: セッションにランダムに参加します。このコールによって、クライアントはデフォルトの入室モードを使用して、利用可能なセッションに参加します。この際、ピアはできる限り早くルームを満たすように割り当てられます。BoltMatchmaking.JoinRandomSession(UdpSessionFilter sessionFilter, IProtocolToken token)
: セッションにランダムに参加します。このオーバーロードでは、UdpSessionFilter
クラスを使用し、カスタムパラメータを渡すことでプレイヤーが参加するルームをフィルタリングできます。
このクラスの使用方法についての詳細は、こちらの専用ページでご確認ください。
拡張されたエンティティAPI
このバージョンでは BoltEntity
APIを、おもにCommand System
に特化した追加メソッドで拡張しました。これらのメソッドによって、エンティティ上の内部Input Command Queue
をより的確に管理できます。
BoltEntity.IsInputQueueFull
: 各エンティティにキューできるコマンド数には上限があります(デフォルトでは60です)。このプロパティは、内部キューがフルかどうかを示します。BoltEntity.ClearInputQueue()
: この機能を特定のエンティティ向けに呼び出すと、内部command queue
はクリアされすべてのコマンドが削除されます。BoltEntity.QueueInput(Command cmd、bool force)
: 新たな引数がQueueInput
に追加されました。boolean
は、コマンドを個別にキュー する必要がある か、またinput queue
がフル(この場合には最も古いコマンドを削除する)かどうかを示します。このフラグはデフォルトでfalse
に設定されます。
これらのメソッドはすべて、特定の高度なシナリオで使用されることを前提にしています。たとえばネットワーク接続の遅延によってエンティティキューがフルになった場合や、ゲームホストへの再接続時にコマンドリストをリセットしたい場合などです。
Boltのフォルダ階層
Photonシリーズのその他の製品の慣習にしたがい、Photon Bolt
SDKは現在<Unity Project>/Assets/Photon/PhotonBolt
フォルダ内に格納されています。これによって、Photon Voice
SDKなどのその他のソリューションを使用している場合には、より適切にコード管理をおこなうことができます。また、このバージョンではUnityプロジェクト上にPhoton Realtime
SDKの内部利用を表示しました。これによって、何らかの改善点があった場合により迅速なアップデートが可能となり、カスタムのRealtimeクライアント(LoadBalancingClient
)の実装を、Photon CloudとBolt
のインテグレーションをおこなうための基本クライアントとして使用することができるようになりました(これはBolt
の将来的なバージョンに組み込まれる予定です)。
アセンブリ定義のサポート
Assembly Definitions
は、Unityプロジェクト内で様々な管理アセンブリにスクリプトを管理するための、興味深い方法です。この方法ではコンパイルのパフォーマンスや、ライブラリとコード間のより適切な依存管理が実現されます。
このトピックの詳細はこちらを参照してください。
Photon Boltには、主要なSDK向けに独自のアセンブリ定義
設定が含まれるようになり、またユーザーが定義したアセンブリ( .asmdef
によって)ファイルもサポートされるようになりました。このサポートは、Boltを使用する際の開発/コンパイル時間を改善するためこのバージョンに含まれました。プロジェクトで新たなアセンブリを定義した際にはBoltコンパイラ(Bolt/Compile Assembly
メニュー)の実行を確認してください。これは、Boltに関連するすべてのクラス(たとえばGlobalEventListener
クラス)をロードするために、ライブラリはこれらのアセンブリを検索および登録する必要があるためです。