嘿好我有一个UIView
只是标准的默认控制器但是我在另一个.swift文件中有一个SCNView
所以我可以从标准UIViewController
转换到{{1但我无法从SKScene
过渡到SKScene
,我的代码中的问题是
SCNcene
我正在尝试转换到的控制器如上所示从UIViewController开始,然后在该行的下方得到 class PlayController: UIViewController, ADBannerViewDelegate, SKPhysicsContactDelegate, SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate{
let scnView = self.view as! SCNView
let skScene = scnView.overlaySKScene
scnView.overlaySKScene = skScene
scnView.backgroundColor = UIColor.whiteColor()
scnView.scene = FieldScene
scnView.delegate = self
scnView.allowsCameraControl = true
scnView.showsStatistics = false
。
在这行代码中让scnView = self.view为! SCNView
但是当我尝试从SCNView
转换到此场景时,我将如何在代码Swift中执行此操作?
我正在开始的控制器如下所示
SKScene
答案 0 :(得分:3)
let skScene = scnView.overlaySKScene
和scnView.overlaySKScene = skScene
的实施应该更改,因为它们无效
创建SKScene对象:let overlayScene = SKScene(size: CGSizeMake(200, 200))
。
设置基础对象的位置:base.position = CGPointMake(75, 0)
。
将基础对象添加到场景:overlayScene.addChild(base)
。
将场景设置为叠加:scnView.overlaySKScene = overlayScene
。
您可以通过调用视图的 presentScene:withTransition:incomingPointOfView:completionHandler:方法来添加转换。
sceneView.presentScene(nextSceneToLoad(),
withTransition:skTransition,
incomingPointOfView:nil, completionHandler:nil)
另一个例子。
let transition = SKTransition.pushWithDirection(.Right, duration: 1.0)
self.sceneView?.presentScene(SCNScene(), withTransition: transition, incomingPointOfView: nil, completionHandler: nil)