簡體   English   中英

如何在Swift中的SCNScene上覆蓋SKScene?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM