我添加了我的声音管理器(在我的游戏中播放声音是单例的)并且遇到了这个问题:
试图添加一个已经有父节点的 SKNode:name:'(null)' frame:{{0, 0}, {1, 1}}'
@property (strong, nonatomic) VSSoundSystem *soundSystem;
in - (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]
就在您销毁旧场景之前。
关于ios - 试图添加一个已经有父节点 : <SKScene> name :'(null)' frame:{{0, 0}, {1, 1}} 的 SKNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25412096/