#ios #swift #sprite-kit #swiftui #skscene
#iOS #swift #sprite-kit #swiftui #skscene
Вопрос:
Прямо сейчас я настраиваю SwiftUI для использования в качестве моего пользовательского интерфейса в игре SpriteKit. Я настроил его так, чтобы моя игра запускалась и работала нормально. Мой пользовательский интерфейс настроен следующим образом
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 по-прежнему установлена на мою исходную сцену и возвращает 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)
}
}