Файл Collada (.dae) не загружается в моей сцене, как это исправить? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь загрузить Collada (.dae) в сцену и отобразить файл на экране телефона.

Я загружаю файл Collada со своего сервера в zip-файл с именем 0002.scnassets.zip.
Я распаковываю файл и получаю папку 0002.scnassets внутри Collada и текстуры.Эта папка находится в каталоге Documents приложения.

Я попробовал это

//download zip from server
//unzip

//try to display
self.Objectview.scene = [SCNScene sceneNamed:@"ObjectScene.scn"];
SCNScene *ObjectS = [SCNScene sceneNamed:@"/0002.scnassets/0002.dae"];
NSLog(@"Children :%@", ObjectS.rootNode.childNodes);
[self.Objectview.scene.rootNode addChildNode:[ObjectS.rootNode childNodeWithName:@"0002" recursively:YES]];
self.Objectview.allowsCameraControl = YES;
self.Objectview.autoenablesDefaultLighting = YES;
[self.Objectview play:(nil)];

Когда я выполняю код, zip загружаются и распаковываются правильно.Но когда я пытаюсь создать сцену с файлом: 0002.dae, журнал сразу после этого сказал: Children :(null) Так что у меня нет доступа к файлу Collada.

Я тоже так пытаюсь:

self.Objectview.scene = [SCNScene sceneNamed:@"/0004.scnassets/0004.dae"];
NSLog(@"%lu", self.Objectview.scene.rootNode.childNodes.count);

Чтобы добавить Collada непосредственно в мой вид сцены без файла .scn, но он не работал.Я получаю из NSLog: 0

Итак, я хочу отобразить файл Collada на виде сцены.Есть идеи?

Спасибо


РЕДАКТИРОВАТЬ

Чтобы убедиться, что файл существует, я проверяю его следующим образом:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",@"0004.scnassets/0004.dae"]];
NSLog(getPath);

BOOL isDir = NO;
BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:getPath isDirectory:&isDir];
NSLog(@"is Dir : %d",isDir);
NSLog(@"is File : %d", isFile);

из этих линеек я получаю путь и is Dir : 0 и is File : 1

Итак, файл существует.Я пытался загрузить сцену из getPath, но не сработало:

SCNScene *ObjectS = [SCNScene sceneNamed:getPath];
NSLog(@"child ObjectScene : %@", ObjectS.rootNode.childNodes);

Я получаю child ObjectScene : (null)

...