Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        4年前关闭。
                    
                
        

我正在尝试第一次制作完整版游戏,我希望是否有更丰富的游戏制作经验的人能告诉我您应该如何存储3d模型和2d纹理(OpenGL)。我已经看到了一些示例,其中使用了一个静态类来存储所有纹理和加载的数据,而其他类则从该类中获取纹理。在其他示例中,我看到人们在使用静态纹理的类中存储了静态纹理。我不知道这样做的最佳实践是什么。作为附带说明,我将把游戏移植到Objective-C并将其放在应用商店中,这就是为什么我使用OpenGL的原因。

最佳答案

我会将游戏分解为Screens和AssetBundles。 AssetBundle具有可加载模型,纹理,音频等的参考列表。每个屏幕都有一个AssetBundle(或它们的列表),必须加载该资产才能使屏幕继续绘制。

我将资源分解成一个AssetBundle,因为有时候有些游戏不需要的纹理或声音,例如只需要标题屏幕就可以。

例如,屏幕为TitleScreen,MenuScreen,GameScreen(主游戏)。屏幕可能会分层,也可能不会分层。

神奇的事情发生在ScreenManager类内,您可以添加/删除屏幕,并且按照添加到管理器的顺序绘制每个屏幕。将屏幕添加到管理器后,它会加载所有尚未加载的AssetBundle。如果删除了一个屏幕,那么如果管理器中的任何现有屏幕中都不存在AssetBundle,则它将删除该屏幕中的AssetBundle。

那就是我至少会做的。

09-25 22:04