我一直在iOS中使用SpriteKit一段时间;现在我正在为Mac开发一个应用程序。
我像往常一样设置纹理图集:
[SKTextureAtlas atlasNamed:@"Something"];
)。[_atlas textureNamed:@"MyTexture"];
)并使用它们创建SKSpriteNode
个实例。我正在异步预加载地图集,但完成处理程序永远不会被调用(参见注释):
_atlas = [SKTextureAtlas atlasNamed:@"Something"];
if (!_atlas) {
NSLog(@"Error: Failed to create atlas!");
// This line doesn't execute, so atlas is not nil.
}
[_atlas preloadWithCompletionHandler:^(void){
// This block doesn't get executed either,
// so atlas loading somehow fails...
NSLog(@"Atlas Loaded!");
[self createSprites];
}];
当我检查构建产品的包内容(例如, MyApp.app )时,在resources子目录中我可以看到atlas文件夹(“Something.atlasc”),但它只包含没有条目的.plist文件,图像资源无处可寻......那么是什么给出了?
答案 0 :(得分:1)
实际上,毕竟不是工作空间。复制到桌面时,相同的工作区/项目构建正常。
原因似乎是,项目文件夹路径中的一个中间目录有一个日文字符的名称。我测试如下:
...(你看到模式)......
我想知道为什么和 这个只影响纹理地图集的导出,而不是其他任何内容。
希望这种经历能够帮助其他人......
我也会更新Apple的错误报告。
更新:根据Apple的说法,问题已经从iOS 8 beta 2(Build 12A4297e)解决。我没有机会检查(我正在工作的项目是一个没有起飞的原型,我选择了名称更改解决方案)。无论如何,iOS 8现在是最终的。