我正在創建一個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. iOS SpriteKit場景 - 多場景在屏幕上
- 2. 場景在SpriteKit
- 3. Spritekit場景歸檔
- 4. 如何在spritekit場景上呈現uiviewcontroller
- 5. SpriteKit場景限制
- 6. 添加SpriteKit背景場景
- 7. Unity3D場景在ubuntu中空白
- 8. AppleWatch上的SpriteKit - 如何呈現場景?
- 9. SpriteKit:移動整個場景
- 10. JavaFX 8:監視器待機後空白的場景
- 11. SpriteKit地方SKShapeNode場景
- 12. SpriteKit場景不被釋放
- 13. SpriteKit場景轉換XCode 7
- 14. iAd Banner正在搞亂SpriteKit的場景
- 15. Spritekit:改變場景並保持背景
- 16. 如何在SpriteKit中模糊場景?
- 17. 如何在SpriteKit中轉換場景?
- 18. 在風景上背景空白
- 19. 導航到iOS上的前一個場景8
- 20. 你如何重命名iOS SpriteKit模板中的默認場景?
- 21. Spritekit場景內容被放大
- 22. 暫停SpriteKit場景當點擊iAds
- 23. SpriteKit節點在啓動後晚上渲染到場景中
- 24. Xcode SpriteKit SKNode類在主場景上不執行代碼
- 25. 使用SpriteKit滾動遊戲場景
- 26. 空白頁在Tomcat上打開OpenEMM 8
- 27. iOS/Swift/Spritekit在該視圖控制器中呈現新場景後,場景是否會刪除數據?
- 28. SpriteKit遊戲中的店鋪場景
- 29. 更改初始場景中spritekit
- 30. Xcode 6中的場景大小/ SpriteKit/Swift
代碼會有幫助 – Fluidity
它與Game模板沒什麼不同,場景在GameViewController中像這樣加載: 'if let view = self.view as! SKView? { 如果讓現場= SKScene(fileNamed: 「MainMenuScene」) { //設置縮放模式擴展到適合窗口 scene.scaleMode .fill僞= //目前現場 view.presentScene(場景) } }' – BuIlDaLiBlE
「沒那麼不同」可能會有所不同。如果它是一個基本的遊戲模板,它將在ios8上運行。事實上,爲什麼不嘗試一個空的項目,看看它是否是你的代碼,或與您的Xcode /模擬器/設備的問題:) – Fluidity