Unity は無料で使用できますHLAPI
。Unity マッチメイキング API を使用しないでください。料金を支払う必要はありません。
別のプレーヤーを同じローカル ネットワーク上にない別のプレーヤーに直接接続させることはできますが、各コンピューターでポート フォワーディングを実行する必要があります。プレーヤーはルーター設定を通じてポート転送を実行できますが、プレーヤーにこれを行わせたくありません。C# スクリプトからポート転送を行うことはできますが、ネットワークについて何も知らないと複雑です。これを行うことができる多くの C# ライブラリがあるため、車輪を再発明する必要があります。
ポート フォワーディングが機能するようになると、Unity 標準 APIを使用して、別のネットワーク内の別のプレイヤーに直接接続できます。
これをさらに進めたい場合は、プレイヤーの IP アドレスとポート番号をサーバーに送信するスクリプトを用意して、プレイヤーが IP アドレスとポート番号を手動で入力しなくても自動的に相互に接続できるようにすることができます。各コンピュータの。
編集:
Unity マッチメイキング API = 内のすべてのクラスUnityEngine.Networking.Match
, などNetworkMatch
Unity 標準 API =NetworkServer
と NetworkClient
その機能のほとんどはUnity マッチメイキング APINetworkManager
に依存しているため、使用しないでください。
NetworkServer
Unity マッチメイキング 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 のサーバーを使用せずに、そのアプリケーションをサーバー上で実行することにより、独自のゲームをホストできるようになります。現在、彼らはネットワーク コードの一部を使用するために料金を支払うことを望んでいますが、実際のコーダーはこれを行う必要はありません。