Невозможно приостановить SKEmitterNode в iOS9
Я пробовал несколько обходных путей, но все же я не могу приостановить существующие частицы на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
Итак, очень простой пример, который работает наiOS8
и не работает, как ожидалосьiOS9
, То, что происходит, - то, что, даже если все выглядит, что приостановлено, это не так. Существующие частицы после бездействия перемещаются в точку, в которой они должны быть, если сцена не была приостановлена. Кроме того, похоже, что частицы тоже нерестятся, что может привести к заметному запаздыванию, если пауза была длительной ...
Вот скриншот из редактора частиц:
У кого-нибудь есть разумное объяснение? До сих пор я пытался явно приостановить излучатель:
emitterNode.paused = YES;
Это не сработало, и на самом деле это должно быть сделано автоматически, когда сцена приостановлена (эмиттер добавлен в сцену). Еще одна вещь, которую пытались установитьemitter.particleSpeed = 0;
так же какemitter.particleSpeedRange = 0;
а такжеemitter.particleBirthRate = 0;
но это не влияет на уже существующие частицы (что имеет смысл).
И это все. Не уверен, что это ошибка, но у меня закончились идеи ...