Я пытаюсь загрузить 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)