[英]Attemped to add a SKNode which already has a parent: <SKScene> name:'(null)' frame:{{0, 0}, {1, 1}}'
我添加了聲音管理器(在游戲中播放聲音是單例),並遇到以下問題:
嘗試添加已經具有父級的SKNode:名稱:'(null)'幀:{{0,0},{1,1}}'
@property (strong, nonatomic) VSSoundSystem *soundSystem;
在-我場景的(id)initWithSize:(CGSize)大小中:
self.soundSystem = [VSSoundSystem sharedSystem];
[self addChild:self.soundSystem];
我需要將其添加為兒童,因為我需要跑步
VSSoundManager初始化:
+ (id)sharedSystem {
static VSSoundSystem *sharedSystem = nil;
@synchronized(self) {
if (sharedSystem == nil)
sharedSystem = [[self alloc] init];
}
return sharedSystem;
}
它工作正常,但在二級加載時崩潰
您正在使用什么框架? cocos2d的? 我的猜測是,當您加載第二級時,將單例再次添加到另一個場景。 由於這是一個單例,它可能仍將舊的,已破壞的場景作為父級。
您可以嘗試如下操作:
[self.soundSystem removeFromParent]
要么
[self.soundSystem removeFromParentAndCleanup:NO]
就在您破壞舊場景之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.