【发布时间】:2018-06-21 05:27:02
【问题描述】:
我正在使用 SceneKit 构建一个 3D 游戏场景,我想在顶部构建一个“hud”,为了让它工作,我使用子视图和overlaySKScene 构建了我的 ViewController,如下所示:
class ViewController:UIViewController {
var sceneView: SCNView!
var mainScene = MainScene() // <- SCNScene
var spriteScene: OverlayScene! // <- SKScene
override func viewDidLoad() {
super.viewDidLoad()
self.sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))
self.sceneView.scene = mainScene
self.sceneView.backgroundColor = UIColor.clear
self.view.addSubview(self.sceneView)
self.spriteScene = OverlayScene(size: self.view.bounds.size)
self.sceneView.overlaySKScene = self.spriteScene
}
}
我有几个问题应该如何正确地完成,因为我遇到了一些看起来不寻常的事情。
首先,假设我需要进行转场,我似乎不清楚如何实际观察OverlayScene 中的一个 SpriteKit 节点上的点击然后更改主父 ViewController 的控制器。我没有在网上找到任何描述类似情况的资源。
这是我的OverlayScene 的精简版:
import UIKit
import SpriteKit
class OverlayScene: SKScene {
var actionBarNode: SKSpriteNode!
override init(size: CGSize) {
super.init(size: size)
self.backgroundColor = UIColor.clear
self.actionBarNode = SKSpriteNode()
self.actionBarNode.size = CGSize(width: size.width, height: 100)
self.actionBarNode.position = CGPoint(x: size.width / 2, y: 50)
self.actionBarNode.color = .white
self.addChild(self.actionBarNode)
}
}
【问题讨论】:
-
"如何将 IBAction 连接到精灵场景中的节点?"您的问题与我如何将 IBAction 连接到位于 UIView 对象上的 UIKit 控件之一几乎相同。
标签: swift sprite-kit scenekit