Если вы отслеживаете состояния машины состояний, вы можете установить параметр перед входом в состояние.Я не совсем уверен, что это потокобезопасный, я буду обновлять, как я буду тестировать дальнейшее использование.
let alienWaitState = AlienWaitState(game: self)
let alienFlyingState = AlienFlyingState(game: self)
aliensStateMachine = GKStateMachine(states: [
alienWaitState,
alienFlyingState,
AlienAnimateOffState(game: self),
AlienDeadRemovalState(game: self)
])
в этом случае параметр AlienState «relatedAlienName» может быть установлен перед входом в состояние
alienWaitState.associatedAlienName = newAlien.name
aliensStateMachine.enter(AlienWaitState.self)
Класс AlienState, alienWaitState является подклассом
class AlienState: GKState {
weak var game:GameScene?
var associatedAlienName:String?
....