【发布时间】:2020-07-08 20:16:49
【问题描述】:
我正在使用带有 SwiftUI 的 SceneKit,遵循 Mehdi 为这个问题提供的解决方案:
SwiftUI - how to add a Scenekit Scene
通常,当创建一个 SceneKit 项目时,实现渲染器方法就像在 GameViewController 文件中添加以下扩展并实现每个渲染器方法一样简单:
extension GameViewController: SCNSceneRendererDelegate {
// 2
func renderer(renderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) {
// 3
doWhatever()
}
}
但是在使用 SwiftUI 时,我们使用的是结构体而不是类(参见上面链接的问题),所以我们不能简单地添加扩展,因为 Xcode 会抱怨:
Non-class type 'ScenekitView" cannot conform to class protocol 'NSObjectProtocol'
Non-class type 'ScenekitView' cannot conform to class protocol 'SCNSceneRendererDelegate'
解决办法是什么?
【问题讨论】: