我试图第一次制作一个全尺寸游戏,我希望如果有更多游戏制作经验的人能告诉我你应该如何存储3D模型和2D纹理(OpenGL)。我已经看到一些示例,其中使用静态类来存储所有加载的纹理和数据,其他类从该类获取纹理。在其他示例中,我看到人们在将使用它的类中存储静态纹理。我不知道这样做的最佳做法是什么。作为旁注,我将游戏移植到Objective-C并将其放在app store上,这就是我使用OpenGL的原因。
答案 0 :(得分:3)
我会将我的游戏分解为屏幕和AssetBundles。 AssetBundle有一个可以加载模型,纹理,音频等的引用列表。每个Screen都有一个AssetBundle(或它们的列表),必须加载它们才能进行绘制。
我将资源分解为AssetBundle,因为有时会出现标题画面所需的游戏玩法不需要的纹理或声音(例如)。
屏幕例如是TitleScreen,MenuScreen,GameScreen(主游戏)。屏幕可以分层,也可以不分层。
魔术发生在ScreenManager类中,您可以添加/删除屏幕,每个屏幕都按照添加到管理器的顺序绘制。当一个屏幕添加到管理器时,它会加载任何尚未加载的AssetBundle。如果屏幕被删除,它将删除该屏幕中的AssetBundle,如果它们在管理器的任何现有屏幕中都不存在。
至少我会怎么做。