如何在sks文件中的“Xcode动作编辑器”获取所有的动作名称“SpriteKit动作”
我有一个SpriteKit动作文件,里面有一些动作。
要使用一个动作,我使用:
let action = SKAction(named: "Shake")
相反 ,可以直接使用MyActions.sks文件中的名称? 就像是:
let actions = SKScene(fileNamed: "MyActions.sks")` let shakeAction = actions.listOfAction.Shake //this is my guess
如果我打印场景文件:
let actions = SKScene(fileNamed: "MyActions.sks") print(actions)
输出是:
Optional({ "_info" = { "_previewScenePath" = "PippiPompiere/GameScene.sks"; }; actions = { PlayerIdle1 = "<SKGroup: 0x79e60ec0>"; PlayerMoveToHouse0 = "<SKGroup: 0x7b1ea010>"; PlayerMoveToHouse1 = "<SKGroup: 0x7b052cd0>"; PlayerMoveToHouse2 = "<SKGroup: 0x7b1ebbd0>"; Rotate360 = "<SKGroup: 0x79e61710>"; Shake = "<SKGroup: 0x79e60a10>"; SunShake = "<SKGroup: 0x7b1e8620>"; WaterJet = "<SKGroup: 0x7b1e8ce0>"; }; }) (lldb)
有可能有像数组一样的行为?
谢谢
AFAIK,你可以从.sks
文件中获取动作字典。 在这里,我有一个动作脉冲 MyCustomActions.sks
文件。
guard let node = SKNode(fileNamed: "MyCustomActions"), let actions = node.value(forKey: "actions") as? [String:SKAction], let pulse = actions["Pulse"] else { return } print(pulse.duration) // 0.6 seconds
从这里,你可以从actions
字典实现自己的struct
。
要获得所有行动的名称,
let actionNames = actions.map { $0.key } // ["Pulse"]