我尝试了一些解决方法,但仍然无法暂停现有的粒子iOS9.我正在使用以下技术来暂停场景:
self.paused = YES;globalPause = YES;变量来控制update:方法执行(因为update:在场景暂停时仍然运行).关键是我不会暂停视图,而是暂停视野.因为这个原因,我不会暂停视图.
以下是可以重现此问题的代码iOS9:
#import "GameScene.h"
@interface GameScene ()
@property (nonatomic, strong)SKEmitterNode *emitter;
@end
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
[self addChild:[self getSpaceDustEmitter]];
}
//No need for this method though :)
-(SKEmitterNode*)getSpaceDustEmitter{
self.emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"spacedust" ofType:@"sks"]];
self.emitter .name = @"emitter_spacedust";
self.emitter .position = CGPointMake(CGRectGetMidX(self.frame),self.frame.size.height);
return self.emitter ;
}
@end
Run Code Online (Sandbox Code Playgroud)
因此,非常简单的例子可以工作,iOS8而不是按预期工作iOS9.会发生什么事情,即使一切看起来都是暂停的,也不是.如果场景未暂停,则取消暂停后的现有粒子移动到它们应该的位置.此外,看起来粒子也会继续产卵,如果暂停时间过长,这会导致明显滞后...
这是粒子编辑器的截图:
有人有一些合理的解释吗?到目前为止,我已经尝试明确暂停发射器:
emitterNode.paused = YES;
Run Code Online (Sandbox Code Playgroud)
它没有用,实际上这应该在场景暂停时自动完成(发射器被添加到场景中).这是尝试的另一件事是设置 …