【问题标题】:The renderer function in SCNSceneRendererDelegate is only called by input, not automaticallySCNSceneRendererDelegate 中的渲染器函数只通过输入调用,不会自动调用
【发布时间】:2021-05-31 22:51:48
【问题描述】:

我知道这个问题之前已经讨论过很多次了。然而,我不清楚如何在 SwiftUI 中实现整个事情。

目前:

在输入(例如移动相机)后,渲染器函数被正确调用。

目标:

渲染器函数也应该在不需要输入的情况下调用。

设置:

struct ContentView: View {
    @ObservedObject var gameData : GameViewModel
    
    var body: some View {
        SceneView(
            scene: gameData.scene,
            pointOfView: gameData.camera,
            options: [
                .allowsCameraControl
            ],
            delegate: gameData
        )
    }
}


class GameViewModel: NSObject, ObservableObject { ... }


extension GameViewModel: SCNSceneRendererDelegate {
    func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) { ... }
}

【问题讨论】:

    标签: swiftui scenekit


    【解决方案1】:

    这由SCNView 上的rendersContinuously 属性控制。

    使用 SwiftUI 时,rendersContinuously 选项可与 SceneView .init(scene:pointOfView:options:preferredFramesPerSecond:antialiasingMode:delegate:technique:) 一起使用

    【讨论】:

    • 正是我想要的。非常感谢。
    猜你喜欢
    • 2016-05-25
    • 2020-09-02
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2019-10-24
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多