如何在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"]