v1.2.6での新機能
主な変更点:
- 新しいBinary Channel
- 新しいJSON Project Serializer
- リモートでのシーン自動読み込みの非有効化
- Bolt Menuのアップデート
- IPv6 Supportのサポート
すべての変更点のリストは、ここでログを確認してください。
新しいBinary Channel
Bolt Connection
上に、新たにBinary Channel
が追加されました。これを使用すれば、ピア間で生データを送信することができます。
この機能はゲームの設計上、カスタムのデータ通信が必要だが、Boltが提供する他の方法が適切でない場合に役立ちます。
この通信チャネルは、他の内部チャネルよりも優先度が高くなっています。このため、このチャネルを使用してデータを送信すると、他のすべての情報(イベント、状態、コマンド)のパッケージングに影響する点に留意してください。このチャネルの使用方法については、以下を参照してください:
C#
// Send an arbitrary byte array to the target BoltConnection
void SendData(BoltConnection conn, byte[] data)
{
conn.SendData(data);
}
// Try to receive data from the BoltConnection
// If there is no information to receive, the `conn.ReceiveData`
// will return false, and the byte array will be null
byte[] ReceiveData(BoltConnection conn)
{
byte[] input;
if (conn.ReceiveData(out input))
{
return input;
}
return null;
}
この機能の全スクリプトは、 こちらから参照してください。
新しいJSON Project Serializer
これまでBolt Project(すべてのBolt Asset定義を格納するファイル)は、バイナリまたはXML形式でシリアル化されていましたが、今後これらの情報はJSONファイルに保存されます。この変更はプロジェクトに大きな影響は及ぼしませんが、アセットのバージョン管理が容易になり、またデータの可読性が向上します。また、今後プロジェクトへの/からのアセットのインポート/エクスポート機能も含まれる予定です。これによって、ゲームサンプルの作成やプロジェクト間でのコンフィグレーションの共有が容易になります。
リモートでのシーン自動読み込みの非有効化
ゲームホストがシーンを変更した際に、リモートクライアント上でシーンを自動的に読み込む機能を非有効化できるようになりました。デフォルトではサーバーが新しいシーンを読み込むと、
ゲームを同期するために全てのクライアントは同様の挙動をおこなうようメッセージを受信します。この設定は、Bolt Settings
ウィンドウのDisable Auto load Scene on Remotes
オプションをチェックすれば変更できます。
Bolt Menuのアップデート
Unity Editorの最上位にBoltの統一メニューが設定されました。このメニューによって、Boltが提供するウィンドウ間やオプション間でのナビゲーションがさらに容易になりました。
これまでのようにAssets
メニューやWindow
メニューを開く必要はなく、全てのアイテムがBolt
ヘッダー内に表示されます。
IPv6のサポート[Bolt Pro]
v1.2.6以降はピアをGame HostまたはGame Clientとして開始する際に、IPv6をピアにアサインできるようになりました。サポートを使用するにはこれを有効化し、BoltLauncher
のメソッドを呼ぶ際に有効なIPv6を渡す必要があります。 以下を参照してください:
C#
void StartServer(ushort serverPort)
{
BoltConfig config = BoltRuntimeSettings.instance.GetConfigCopy();
config.EnableIPv6 = true;
BoltLauncher.StartServer(new UdpEndPoint(UdpIPv6Address.Any, serverPort), config);
}
void StartClient()
{
BoltConfig config = BoltRuntimeSettings.instance.GetConfigCopy();
config.EnableIPv6 = true;
BoltLauncher.StartClient(UdpEndPoint.AnyIPv6, config);
}
void ConnectToServer(string serverAddress, ushort serverPort)
{
UdpEndPoint endPoint = new UdpEndPoint(UdpIPv6Address.Parse(serverAddress), serverPort);
BoltNetwork.Connect(endPoint);
}
Back to top