Я пытаюсь загрузить в код несколько больших моделей и показать сцены. Как правило, загрузка и отображение сцены на экране занимает много времени, так как требуется извлечь много ресурсов из модели модуля. Итак, я подумал о том, чтобы заполнить первую сцену в основном потоке, а остальные - в отдельном потоке. Но происходит сбой, когда я перемещаю свой код детали в отдельный поток. Вот мой пример кода:
-(void) loadFirstScene
{
CC3PODResourceNode* podRezNode = [CC3PODResourceNode nodeWithName: @"FirstModel"];
podRezNode.resource = [IntroducingPODResource resourceFromFile: @"FirstModel.pod"];
podRezNode.shouldCullBackFaces = NO;
podRezNode.location = cc3v(0.0, -10.0, 0.2);
podRezNode.isTouchEnabled = YES;
[self addChild: podRezNode];
[NSThread detachNewThreadSelector:@selector(loadScenesInThread) toTarget:self
withObject:nil];
}
// Crashing if i add the below function in separate thread or background thread
-(void) loadScenesInThread
{
CC3PODResourceNode* podRezNode = [CC3PODResourceNode nodeWithName: @"SecondModel"];
podRezNode.resource = [IntroducingPODResource resourceFromFile: @"SecondModel.pod"];
podRezNode.shouldCullBackFaces = NO;
podRezNode.location = cc3v(0.0, -10.0, -5.0);
podRezNode.isTouchEnabled = YES;
[self addChild: podRezNode];
podRezNode = [CC3PODResourceNode nodeWithName: @"ThirdModel"];
podRezNode.resource = [IntroducingPODResource resourceFromFile: @"ThirdModel.pod"];
podRezNode.shouldCullBackFaces = NO;
podRezNode.location = cc3v(0.0, -10.0, -5.0);
podRezNode.isTouchEnabled = YES;
[self addChild: podRezNode];
// .. do more
}
Может ли кто-нибудь направить меня, как мне справиться с такой ситуацией?