我有一个游戏脚本文件,其中包含章节名称和/或游戏名称。我正在使用此功能自动呈现下一个场景:
func presentScene(from: SKScene, model: SceneModel)
{
gamestate.update(scene: model)
soundboard.pause(fadeDuration: 1)
switch model.type
{
case .game(let name, _, _):
if let game = SKScene(fileNamed: "GameScene") as? GameScene {
game.model = model
from.view?.presentScene(game, transition: SKTransition.fade(withDuration: 0.6))
}
case .text(_):
if let text = SKScene(fileNamed: "TextScene") as? TextScene {
text.model = model
from.view?.presentScene(text, transition: SKTransition.fade(withDuration: 0.6))
}
case .video(_, _, _):
if let video = SKScene(fileNamed: "VideoScene") as? VideoScene {
video.model = model
from.view?.presentScene(video, transition: SKTransition.fade(withDuration: 0.6))
}
}
}
所以我的问题是:我可以使用字符串变量获得一种自定义游戏类吗?像这样
let nameString = "dakjsdljk"
if let game = SKScene(fileNamed: nameString) as? nameString {
}
还是唯一的方法是创建带有游戏类型的枚举,并手动从原始字符串初始化其值?