我正在创建一个SceneKit游戏,并且今天遇到了这个问题。这款游戏在任何iOS 9及更高版本中的工作原理都是如此,但老版本的麻烦很大。基本上,iOS 8上的游戏看起来只是一个空白的SpriteKit场景(我将背景设置为白色,因此它是白色的),并且由于某些原因不渲染任何东西。我无法弄清楚为什么,有人知道这是为什么?我搜索了这个,并没有发现任何东西。哦,我的部署目标是iOS 7.1,但我没有任何设备可以在iOS 7 atm上测试,因此它可能也是一个问题。 我也尝试创建一个模板游戏项目(它甚至有iOS 9的相关代码,但是当我尝试运行它时会抛出这个错误:*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (SKCameraNode)'
。即使我取出相机节点复选框,它仍然抛出这个错误,我不知道除了iOS的7和8的降落支持,我真的不想做:(SpriteKit场景在iOS 8上空白
回答
你很可能使用不可用的功能做什么你的场景中的iOS 7或8,你可以声明某些代码块只在某些iOS版本中被激活,但如果你使用的是诸如摄像机节点等重要特性,那么你可能需要增加你的部署目标,或者使用。老式相机
此链接显示如何实现一个老派的相机: https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Actions/Actions.html
,您可以使用https://objectivec2swift.com/#/home/converter/将片段转换为Swift(如果需要)。
如果你不使用相机节点,尝试在一个任何引用您的.sks文件检查..有一个名为“使用摄像头”的选项,默认情况下,在编辑器中检查你的基地场景,无论是否你做一个:
我发现,没有堆栈跟踪到行代码的随机误差通常是由与.sks或<其他非SWIFT文件类型的问题引起的。 <()
UPDATE:
周围窥探这似乎是一个错误或问题没有一个明确的解决方案后。我的最后两个解决办法是:
下降的iOS 7,看的iOS 8+给你的错误(我认为8是最低目标反正)..这么少的用户和功能,我怀疑它是值得支持7 ...但是,如果你必须:
下载Xcode的7(或更早),只是做两个项目。 http://adcdownload.apple.com/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg
如果走这条路,我会建议在XC7开发,这样,您就可以在iOS 9/10的共享雨燕2.3的代码,或者使用内置的功能转换为SWIFT 3以后。
对于老版本没有的功能Xcode提供了一个修复与如有语句 - 这是我用什么。我从来没有在我的项目中使用任何相机节点,也没有看到任何模板,但Xcode仍然抱怨。 但无论如何,我很欣赏答案,并且Obj-C to Swift转换器非常方便,谢谢! – BuIlDaLiBlE
@BuIlDaLiBlE ACTUALLY,尝试查看您的.sks文件...您可能有“使用相机”检查!这可能是为什么..查看我最新的答案在底部。 – Fluidity
还是抛出了同样的错误:( 这是很奇怪的 - 模板崩溃,但我的应用程序不会(仍然呈现什么寿) – BuIlDaLiBlE
这个答案是基于@BuIlDaLiBlE评论。
- 删除您.sks文件。
- 添加新SpriteKit场景(.sks)到项目(可选:它命名为别的东西,改变你的GameViewController.m字符串)。
- 选择您新创建的.sks文件。
- 在属性检查器(cmd + alt + 7)中,取消选中“使用相机节点”。
完成。
你试过将其关闭并再次打开?
- 1. Spritekit场景归档
- 2. 如何在spritekit场景上呈现uiviewcontroller
- 3. SpriteKit场景限制
- 4. 添加SpriteKit背景场景
- 5. SpriteKit SKView不再在iOS中的场景之间切换9
- 6. 如何在SpriteKit中转换场景?
- 7. 在风景上背景空白
- 8. 导航到iOS上的前一个场景8
- 9. Spritekit场景内容被放大
- 10. SpriteKit节点在启动后晚上渲染到场景中
- 11. 使用SpriteKit滚动游戏场景
- 12. Xcode 6中的场景大小/ SpriteKit/Swift
- 13. SpriteKit游戏中的店铺场景
- 14. 调整SpriteKit场景的大小
- 15. 用swift替换Spritekit中的场景
- 16. 更改初始场景中spritekit
- 17. SpriteKit:场景完成后回调?
- 18. SpriteKit场景节点缩放说明
- 19. react-native-maps在ios上空白
- 20. SpriteKit场景不适合iPhone上的整个视图X
- 21. iOS - 空白块
- 22. localhost/phpMyAdmin/Windows 8上的空白页面
- 23. 如何在SpriteKit中离开场景后删除SKNode
- 24. Spritekit- SKTextureatlas - 在多个场景中使用预加载的纹理
- 25. 谷歌地图saddr空白不工作在iOS 8
- 26. 与UIActivityViewController共享图像是空白/损坏在iOS 8
- 27. 在其他场景中显示插页式广告 - Admob,SpriteKit,Swift
- 28. 什么都没有出现在SpriteKit的场景
- 29. SpriteKit,如何将现场摄像机放置在背景中
- 30. 广场对象,SpriteKit
代码会有帮助 – Fluidity
它与Game模板没什么不同,场景在GameViewController中像这样加载: 'if let view = self.view as! SKView? { 如果让现场= SKScene(fileNamed: “MainMenuScene”) { //设置缩放模式扩展到适合窗口 scene.scaleMode .fill伪= //目前现场 view.presentScene(场景) } }' – BuIlDaLiBlE
“没那么不同”可能会有所不同。如果它是一个基本的游戏模板,它将在ios8上运行。事实上,为什么不尝试一个空的项目,看看它是否是你的代码,或与您的Xcode /模拟器/设备的问题:) – Fluidity