4

ゲームロジックをAPIに依存しないようにしようとしています。そうすることで、Unity3DのVector3構造体やXNAなどを使用したくありません。これを行うための最良の方法は何ですか?独自のVector3構造体をロールして、さまざまなAPI実装への暗黙的なコンバーターを作成した場合、キャストが非常に重くなるようです。

この種のベストプラクティスはありますか?MicrosoftやUnityなどにピクニックをして共通のインターフェースを守るように頼むことができるわけではありません。

4

2 に答える 2

3

のXNAUnityの実装は非常に似ているように見えますがVector3、主な違いはプロパティ名の場合です。残念ながら、拡張プロパティを実装する方法はありません。

できることは、いくつかの条件付きコンパイル(または)とともに一連の拡張メソッドを作成し、それらの拡張メソッドを排他的に使用して、APIに依存しないコードの値を取得することです。これにより、Vector3オブジェクトを変更せずに、大量のキャストなしでVector3を必要とするプラットフォーム固有のコードに渡すことができます。#if UNITY_3_3#if XNA

于 2011-03-14T19:01:43.050 に答える
2

私の経験に基づいて、ロジックを書き込むプラットフォームを1つ選択し、もう1つのプラットフォームで、プラットフォームのネイティブタイプへの変換を使用して一致する実装を作成します。3番目の実装を設計および作成してから、両方のプラットフォームに変換する必要があるのは意味がありません。

すべてのプラットフォームが同じであれば、MonoGameまたは(最終的には)ExEnからオープンソースの実装を取得して使用できるため、おそらくXNAを好むでしょう。

ただし、実際には、開発する予定のプラットフォーム(XNAまたはUnity)から始めて、実際に必要になったときに互換性レイヤーを作成するのがおそらく最善だと思います。

于 2011-03-14T12:56:58.997 に答える