重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。 |
ユーザーの目的に応じて、ネットワーク機能には 2種類あります。
Unity のネットワークには “高レベル” なスクリプト API (Unity では、HLAPI と呼びます) があります。このスクリプト APIを使用することで “低レベル” な実装の詳細を気にすることなく、マルチプレイヤーゲームの一般的な要件を含むコマンドのほとんどにアクセスできます。以下は HLAPI の概要です。
Unity のネットワークは、ゲームエンジンとエディターに統合されました。これにより、コンポーネントやビジュアルツールを使い、マルチプレイヤーゲームを作成できるようになりました。以下の機能が提供されます。
Unity は、製作とリリースを通してゲームをサポートするために、以下を含むインターネットサービスを提供します。
Unity には、以下の機能を提供するリアルタイムのトランスポート層があります。
Unity のネットワークはシンプルな組み込みの認証機能を実装し、セッションを検証するための基本的なサポートを提供しますが、堅牢な認証ソリューションではありません。
堅牢な認証は、悪意のあるユーザーによるプレイヤーセッションの乗っ取り、他のユーザーのなりすまし、正規のプレイヤーのゲームからの切断など、ゲームやアプリケーションに特有の悪質な行為を防ぐことができるため、マルチプレイヤープロジェクトの開発において重要な要素です。
Unity は簡易なビルトインの認証しか提供しないため、ゲームやアプリケーションで悪意ある行為に対する強固な保護が必要な場合は、サードパーティの認証と暗号化ソリューションを使用するか、この参考実装 や NetworkTransport API などのプラグインを使用して自身で実装する必要があります。
これらの機能の活用方法を調べるために、マルチプレイヤーゲームのサンプルプロジェクトを詳しく研究することもできます。 Unity のフォーラム には以下のサンプルプロジェクトがあります。