初めてフルスケールゲームを作成しようとしています.3Dモデルと2次元テクスチャ(OpenGL)をどのように保存するのか、ゲーム作成経験のある方に教えてください。私はいくつかの例を見てきました。静的なクラスが使用され、テクスチャとロードされたすべてのデータを格納し、他のクラスはそのクラスからテクスチャを取得します。他の例で私は人々がそれを使用するクラスに静的なテクスチャを格納するのを見てきました。私はこれを行うためのベストプラクティスは何か分かりません。私はObjective-Cにゲームを移植し、それをOpenGLを使っているアプリケーションストアに置くことになります。エンティティデータを管理する方法
0
A
答えて
3
ゲームを画面とアセットバンドルに分割します。 AssetBundleには、モデル、テクスチャ、オーディオなどを読み込むことができる参照リストがあります。各Screenには、AssetBundle(またはそれらのリスト)があり、描画を進めるために画面に読み込まなければなりません。
私は自分のリソースをAssetBundleに分割します。これは、タイトル画面(たとえば)に必要なだけのゲームプレイに必要ないテクスチャやサウンドがあることがあるためです。
たとえば、スクリーンはTitleScreen、MenuScreen、GameScreen(メインゲーム)です。画面がレイヤーになることがあります。
魔法はScreenManagerクラス内で発生し、スクリーンを追加/削除でき、各スクリーンはマネージャに追加された順序で描画されます。画面がマネージャに追加されると、まだロードされていないAssetBundleがロードされます。画面が削除された場合、Managerの既存の画面にその画面がない場合、その画面のAssetBundleが削除されます。
どうすればいいですか?
関連する問題
- 1. asp.net mvc 3アプリケーション内のビュー管理を管理する方法
- 2. Ruby on Rails - 管理インターフェースでレイアウトを管理する方法は?
- 3. C++メモリ管理でクラスを管理する方法 - study
- 4. SVNでバイナリファイルのバージョン管理を管理する良い方法
- 5. 複数のgitバージョン管理リポジトリを管理する方法は?
- 6. リモートデータベース管理方法?
- 7. Artifactoryがreposを管理する方法
- 8. UITableViewでセクションを管理する方法
- 9. 従属ドッカーサービスを管理する方法
- 10. GMSMapView:メモリを管理する方法は?
- 11. Laravelでセッションを管理する方法
- 12. ナビゲーションドロワーでベースアクティビティを管理する方法
- 13. オフラインマップを管理する方法
- 14. marklogic接続を管理する方法
- 15. iPhoneでマルチタスクを管理する方法
- 16. ビジネスファイナンスマネージャのバックエンドを管理する方法
- 17. Webポータルを管理する方法
- 18. android uiautomatorテストメソッドオーダーを管理する方法
- 19. ビジネスロジックレイヤーでトランザクションを管理する方法
- 20. JavaScriptでバックボタンを管理する方法
- 21. ネイティブヒープを管理する方法は?
- 22. Unity3Dインスタンス/シングルトンを管理する方法
- 23. イオンセグメントでinfiniteScrollを管理する方法
- 24. Androidでアクティビティインスタンスを管理する方法
- 25. Djangoモデル:フィールドフラグを管理する方法
- 26. トリガーを管理する方法
- 27. ノードサイトのサブドメインを管理する方法
- 28. ビジュアルスタジオのタブを管理する方法
- 29. JPAライフサイクルイベントを使用してエンティティデータを取得する方法
- 30. 管理者と管理者の両方でSonataAdminBundleを転用する方法
これはかなり良い考えのようです。私はすでに 'Screen'スーパークラスと類似の形式のorginizationを持っていますので、これを実装するのに時間がかかりません。 –