如何使SpriteKit的场景保持ObservedObject SKScene的最新状态?

问题描述

现在,我正在设置SwiftUI以用作SpriteKit游戏中的UI。我已经设置好了,因此我的游戏启动并运行良好。我的UI视图设置如下

struct GameView: View{
    @ObservedObject var scene: GameScene
    var body: some View{
        ZStack{
            SpriteView(scene: scene)
                .edgesIgnoringSafeArea(.all)
            
            //UI
            VStack{
                HStack{
                    Spacer()
                    Text("\(scene.name!)").foregroundColor(.red)
                    Button(action: {
                        scene.goBack()
                    },label: {
                        Text("Return")
                    })
                    Button(action: {
                        scene.tryEnter()
                    },label: {
                        Text("Enter")
                    })
                }
                Spacer()
            }.padding()
            .edgesIgnoringSafeArea(.trailing)
        }
    }
}

如何做到这一点,以便可以使用goBack()返回?问题是,我的ObservedObject场景仍然设置为我的OriginScene并返回View为NIL,因为它没有显示在atm。

func goBack(){
    guard map.originScene != nil else { return }
    if let scene = SKScene(fileNamed: map.originScene!.name!) {
        // Set the scale mode to scale to fit the window
        scene.scaleMode = .aspectFill
        let transition:SKTransition = SKTransition.fade(withDuration: 1)
        view!.presentScene(scene,transition: transition)
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...