我正在开发一款游戏,到目前为止,我像往常一样在XCode项目中拥有资产,但是我想知道是否可以在运行时加载它们,但我不知道该怎么做。我正在使用parse.com服务,因此实际上可以在线存储资产并加载它们,但是对于正在编译的项目该如何工作?还是XCode项目知道资产在加载后实际上是程序的一部分?
当资产成为应用程序捆绑包的一部分时,它们的总和就是IPA文件的大小。在OTA的情况下,IPA的大小很重要。当前OTA大小限制为50MB。对于游戏,资产大小通常可能会达到数百MB,这将限制从应用程序商店下载OTA。
因此,应用程序会在游戏首次运行时下载所需的资产,并将其存储在磁盘上。对于这种方法,应用程序需要使用恢复功能(用于错误处理或部分下载方案)和缓存技术来实现资产下载模块。
捆绑资产
要访问捆绑资源,您需要使用类似于以下内容的代码
NSString *imgBundlePath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"someimage.png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imgBundlePath];
下载的资产
当应用程序从服务器下载资源时,下载的文件需要存储在应用程序目录中。它们无法存储在捆绑软件中,因为一旦安装在设备上便是只读的。要访问这些文件的代码是
// Assuming downloaded assets are stored in NSCachesDirectory
NSArray *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *imgPath = [[cachePath lastObject] stringByAppendingPathComponent:@"someimage.png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imgBundlePath];
希望我回答了你的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句