PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

v1.2.6での新機能

主な変更点:

すべての変更点のリストは、ここでログを確認してください。

新しい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オプションをチェックすれば変更できます。

disable auto load scene
Auto Load Sceneオプションの非有効化

Bolt Menuのアップデート

Unity Editorの最上位にBoltの統一メニューが設定されました。このメニューによって、Boltが提供するウィンドウ間やオプション間でのナビゲーションがさらに容易になりました。 これまでのようにAssetsメニューやWindowメニューを開く必要はなく、全てのアイテムがBoltヘッダー内に表示されます。

new bolt menu
新しい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