14

Unity のマルチプレイヤー サービス ページを見ましたが、完全に混乱しています。

Unity Matchmaker と Relay サーバー (それらが何であれ) に料金を支払うことなく、公開されたゲームでUnity の高レベルのネットワーク API (NetworkManager / NetworkManagerHUD)を使用できますか?

専用サーバーを実行したい独自のクラウドベースの VM があります。私のプロジェクトは、友達と遊ぶ小さなゲームです (商用または大規模なものではありません)。そのゲームの公開済みコピーを VM の専用サーバー モードで実行し、友人に公開済みクライアント コピーを実行させ、NetworkManager 経由でサーバーに接続させたいと考えています。

無料でできますか?友人が NetworkManagerHUD を使用してゲーム コピーにサーバーの IP とポートを手動で入力する必要があるかどうかは気にしません。そうすることは「CCU」としてカウントされますか (Unity Personal の場合は 20 の制限)? その場合、Unity Matchmaker の帯域幅 ($0.49/GB、Unity Personal では利用できません) を使用しますか?

説明をいただければ幸いです。:)

4

1 に答える 1

55

Unity は無料で使用できますHLAPI。Unity マッチメイキング API を使用しないでください。料金を支払う必要はありません。

別のプレーヤーを同じローカル ネットワーク上にない別のプレーヤーに直接接続させることはできますが、各コンピューターでポート フォワーディングを実行する必要があります。プレーヤーはルーター設定を通じてポート転送を実行できますが、プレーヤーにこれを行わせたくありません。C# スクリプトからポート転送を行うことはできますが、ネットワークについて何も知らないと複雑です。これを行うことができる多くの C# ライブラリがあるため、車輪を再発明する必要があります。

ポート フォワーディングが機能するようになると、Unity 標準 APIを使用して、別のネットワーク内の別のプレイヤーに直接接続できます。

これをさらに進めたい場合は、プレイヤーの IP アドレスとポート番号をサーバーに送信するスクリプトを用意して、プレイヤーが IP アドレスとポート番号を手動で入力しなくても自動的に相互に接続できるようにすることができます。各コンピュータの。

編集

Unity マッチメイキング API = 内のすべてのクラスUnityEngine.Networking.Match, などNetworkMatch

Unity 標準 API =NetworkServerNetworkClient

その機能のほとんどはUnity マッチメイキング APINetworkManagerに依存しているため、使用しないでください。

NetworkServerUnity マッチメイキング API を使用しないネットワーク ゲームを作成するには、とNetworkClientクラスが必要です。

サーバーを作成するには:

NetworkServer.Listen

次のようなオーバーロードされたメソッドがあります

public static bool Listen(string ipAddress, int serverPort);
public static bool Listen(int serverPort);

クライアント (サーバーに接続) を作成するには:

NetworkClient.Connect
public void Connect(string serverIp, int serverPort);

Unity マッチメイキング API を使用しないと、ゲームの作成やゲームへの参加などの機能が失われます。上記の と を使用して、完全なネットワーク ゲームを作成できNetworkServerます。NetworkClientサーバーを作成して接続し、情報の送受信を開始するだけです。Unity のサーバーがダウンしたり遅くなったりしても、ゲームは他のゲームとは異なり動作し続けるため、価値があります。

: Unity は、独自のゲームをホストできるアプリケーションの開発に取り組んでいます。これはまだリリースされていませんが、リリースされれば、Unity のサーバーを使用せずに、そのアプリケーションをサーバー上で実行することにより、独自のゲームをホストできるようになります。現在、彼らはネットワーク コードの一部を使用するために料金を支払うことを望んでいますが、実際のコーダーはこれを行う必要はありません。

于 2016-03-18T18:48:29.887 に答える