[英]How can I overlay a SKScene over a SCNScene in Swift?
互聯網上有一些疊加教程,都在某些時候使用overlaySKScene
。
這在我的項目中是不可能的,因為(我猜)我的視圖在任何時候都沒有使用SCNView
的構造函數( overlaySKScene
是其中的一部分)。
在ViewController的viewDidLoad中,基本上只創建了MainScene:
viewDidLoad() {
self.sceneView = MainScene(view: self.view)) }
...在這里(注意:SCNScene而不是SCNView):
class MainScene: SCNScene, SCNPhysicsContactDelegate {...
init(view:UIView) {
scnView = view as! SCNView
super.init()
scnView.scene = self; (...) }
場景完美創建,我現在想要覆蓋SKScene。 有誰知道怎么樣?
SpriteKit疊加在SceneKit視圖上,而不在SceneKit場景上。 這有點令人困惑,因為您在視圖上覆蓋了一個場景。
我看到幾個可能的錯誤來源:
self.sceneView = MainScene(view: self.view))
如定義返回SCNScene
。 您將其分配給需要SCNView
的屬性。
這條線
scnView = view as! SCNView
除非view
返回正確連接的SCNView
實例,否則將崩潰。 但是你寫的init
定義需要一個UIView
。
某處,您需要將視圖設為SCNView
。 該視圖,因為它符合協議SCNSceneRenderer
,將在其上具有overlaySKScene
屬性( overlaySKScene
來自該協議,而不是來自SCNView
)。 您可以在此處分配SKScene
實例。
如果你已經這樣做了,那么你的代碼看起來就像
scnView.scene = self
scnView.overlaySKScene = theSKScene
我有一個簡單的SKScene
示例,它覆蓋在SCNView
, 網址為https://github.com/halmueller/ImmersiveInterfaces/tree/master/Tracking%20Overlay
另請參見如何在Scenekit.scene之上創建HUD 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.