4

Unity3D エンジンの高レベル ネットワーク API (HLAPI) を使用することは、全か無かのアプローチのようです。マルチプレイヤーでの使用が予想されるゲーム オブジェクトでは、(ほとんどの) 動作を として実装する必要がありNetworkBehaviour、ネットワーク コンポーネントが必要です。さらに、すべてのシーンで Network Manager が必要です。すべてのシングルプレイヤー アセットのネットワーク対応バージョンを複製することは避けたいと思います。シングル プレイヤー ゲームは、単一の (localhost) のみを使用して LAN ホストベースのネットワーク ゲームとして実現されることが予想されるようです。クライアント。

私の懸念は、絶対にすべての上に乗っている HLAPI が、ゲームの主な焦点であるシングルプレイヤー モードでかなりのオーバーヘッドをもたらすことです。これは正当な懸念事項ですか?

私はいくつかの緩和手法を検討しましたが、保守性とコードの複雑さに関して独自の問題を引き起こします。

  • 両方のモードで必要なプレハブが複製されます (DRY に違反: 1 つのプレハブへの変更は、手動で別のプレハブにミラーリングする必要があります)。
  • シングルプレイヤー アセットをマルチプレイヤー アセットに動的に変更または置換する、またはその逆 (複雑でエラーが発生しやすい)

より良い緩和技術は何ですか? それとも必要ですか?

4

1 に答える 1

0

これは一種の古い質問ですが、とにかく実行すると思います。シングル プレイヤー モードになっていることを検出し、その場合は Destroy を使用して不要なコンポーネントを削除できますか? 例えば:

http://answers.unity3d.com/questions/378930/how-delete-or-remove-a-component-of-an-gameobject.html

于 2016-11-21T14:58:59.650 に答える