2017-07-15 74 views
3

在SpriteKit中,場景完成其轉換時是否存在回調?SpriteKit:場景完成後回調?

它看起來不像SKView presentScene函數有回調。

另一種方法是讓場景在場景移動到視圖後手動通知調用者,但希望有一個本地回調的更乾淨的方法。

+0

有沒有回撥,我知道,你需要使用舊的場景 – Knight0fDragon

+0

@ Knight0fDragon這似乎是moveFromView。請發帖作爲答案,以便您可以獲得信用!謝謝!儘管你不需要使用舊的場景。您可以使用新場景中的事件(例如,willMove,didMove)。 – Crashalot

+0

你不能使用新的場景,你必須使用舊的場景,新的場景立即着火,這不是你想要的 – Knight0fDragon

回答

3

presentScene有當一個場景已經完成轉換,而是,使用Notification s;或外出的場景func willMove(from:view)創建自己的某種代表以達到預期的效果

func willMove(from view:SKView) 
{ 
    NotificationCenter.default.post(name: "TRANSITIONCOMPLETE", object: nil) 
    //or create a delegate using protocols, assign the delegate, and call it 
    delegate?.finishedTransition() 
} 

注意,你不知道回調必須使用outgoingScenes willMove(from:view),這是轉換過程中發生的最後一件事。 didMove(to:view) on incomingScene是轉換的開始

+0

正確,雖然從技術上講,當過渡結束時要求通知的問題,所以'didMove'是正確(以及使用了什麼)。感謝您的幫助! – Crashalot

+0

@Crashalot ....你和我對「結論」有很不同的定義。對我來說,這是一個過渡結束時,這是willMove(fromView) – Knight0fDragon

+0

你是對的,「結論」是不明確的。這個問題的措詞是正確的:當新的場景出現時。 – Crashalot