SceneKit Swift 3 继承不起作用
SceneKit Swift 3 Inheritance does not work
我写了一个class:
import UIKit
import SceneKit
class Scene: SCNScene {
var _sceneView: SCNView!
var cameraNode: SCNNode!
func setupView(view: SCNView) {
_sceneView = view
}
}
但是当我在 GameViewController 中调用 class 的函数时:
import UIKit
import QuartzCore
import SceneKit
import SpriteKit
class GameViewController: UIViewController, SCNSceneRendererDelegate {
var scene: Scene? = nil
override func viewDidLoad() {
super.viewDidLoad()
//Super
super.viewDidLoad()
scene = Scene()
let sceneView = self.view as! SCNView
...
sceneView.scene = scene?.setupView(view: sceneView)
}
}
显示错误:
无法分配“()”类型的值?输入 'SCNScene?'
当我尝试调用函数时,它划掉了函数:
请解释并帮助解决该问题。
提前致谢。
忽略其他潜在问题(不要强制解包(!
),除非绝对需要,下划线变量名是 objective-c ivars 的约定,有时用于命名私有存储swift 类),您可能想要的是:
//: Playground - noun: a place where people can play
import UIKit
import SceneKit
import QuartzCore
import SpriteKit
class Scene: SCNScene {
var _sceneView: SCNView!
var cameraNode: SCNNode!
func setupView(view: SCNView) {
_sceneView = view
}
}
class GameViewController: UIViewController, SCNSceneRendererDelegate {
var scene: Scene? = nil
override func viewDidLoad() {
super.viewDidLoad()
let scene = Scene()
let sceneView = self.view as! SCNView
scene.setupView(view: sceneView)
sceneView.scene = scene
self.scene = scene
}
}
我写了一个class:
import UIKit
import SceneKit
class Scene: SCNScene {
var _sceneView: SCNView!
var cameraNode: SCNNode!
func setupView(view: SCNView) {
_sceneView = view
}
}
但是当我在 GameViewController 中调用 class 的函数时:
import UIKit
import QuartzCore
import SceneKit
import SpriteKit
class GameViewController: UIViewController, SCNSceneRendererDelegate {
var scene: Scene? = nil
override func viewDidLoad() {
super.viewDidLoad()
//Super
super.viewDidLoad()
scene = Scene()
let sceneView = self.view as! SCNView
...
sceneView.scene = scene?.setupView(view: sceneView)
}
}
显示错误:
无法分配“()”类型的值?输入 'SCNScene?'
当我尝试调用函数时,它划掉了函数:
请解释并帮助解决该问题。
提前致谢。
忽略其他潜在问题(不要强制解包(!
),除非绝对需要,下划线变量名是 objective-c ivars 的约定,有时用于命名私有存储swift 类),您可能想要的是:
//: Playground - noun: a place where people can play
import UIKit
import SceneKit
import QuartzCore
import SpriteKit
class Scene: SCNScene {
var _sceneView: SCNView!
var cameraNode: SCNNode!
func setupView(view: SCNView) {
_sceneView = view
}
}
class GameViewController: UIViewController, SCNSceneRendererDelegate {
var scene: Scene? = nil
override func viewDidLoad() {
super.viewDidLoad()
let scene = Scene()
let sceneView = self.view as! SCNView
scene.setupView(view: sceneView)
sceneView.scene = scene
self.scene = scene
}
}