首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpriteKit场景在iOS 8上为空白

SpriteKit场景在iOS 8上为空白
EN

Stack Overflow用户
提问于 2017-03-01 12:46:34
回答 2查看 422关注 0票数 1

我正在创建一个SceneKit游戏,今天我遇到了这个问题。这款游戏在任何iOS 9和更高版本中都应该如何工作,但老版本却是个大麻烦。基本上在iOS 8上的游戏看起来只是一个空白的SpriteKit场景(我把背景设置为白色,所以它是白色的),并且由于某种原因没有呈现任何东西。我不知道为什么,有人知道为什么吗?我找了这个却什么也没找到。哦,我的部署目标是iOS 7.1,但是我没有任何设备可以在iOS 7 ATM机上测试,所以这也可能是一个问题。我还尝试创建一个模板游戏项目(它甚至有iOS 9依赖的代码lol),但是当我试图运行它时,它抛出了这个错误:*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (SKCameraNode)'。即使我删除了相机节点复选框,它仍然会抛出这个错误,除了删除对iOS 7和8的支持之外,我不知道该做什么:(

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-01 13:49:36

在您的场景中,您可能使用了iOS 7或8没有的特性。您可以声明某些代码块仅在某些iOS版本中被激活,但是如果您使用的是诸如相机节点之类的关键功能,那么您可能需要增加部署目标,或者使用老式相机。

这个链接显示了如何实现一个古老的相机:PG/Actions/Actions.html

如果需要,您可以使用https://objectivec2swift.com/#/home/converter/将代码片段转换为Swift。

如果您没有使用相机节点,请尝试在.sks文件中签入对一个节点的任何引用。在编辑器中,有一个名为“使用摄像机”的选项,默认情况下将检查您的基本场景,而不管您是否制作了这样的场景:

我发现没有堆栈跟踪代码行的随机错误通常是由.sks或其他非迅捷文件类型<.<()引起的。

更新:

在窥探之后,这似乎是一个错误或一个问题,没有一个明确的解决方案。我的最后两个解决办法是:

  1. 删除iOS 7,看看iOS 8+是否给出了错误(我认为8是最低的目标)。由于如此少的用户和功能,我怀疑它是否值得支持7.但是,如果你必须:
  2. 下载Xcode 7(或更早版本),只需进行两个项目。7.3.1.dmg

如果您采用这种方式,我建议您使用XC7进行开发,这样您就可以在iOS 9/ 10中共享SWIFT2.3代码,或者使用内置的特性在稍后将其转换为Swift 3。

票数 0
EN

Stack Overflow用户

发布于 2017-05-17 13:04:10

这个答案是基于@BuIlDaLiBlE的评论。

  1. 删除.sks文件。
  2. 向项目中添加新的SpriteKit场景(.sks) (可选:将其命名为其他内容,并更改GameViewController.m中的字符串)。
  3. 选择新创建的.sks文件。
  4. 在属性检查器(cmd+alt+7)中取消“使用相机节点”。

好了。

你有没有试过一次又一次地关掉它?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42532142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档