ios — Objective-C, Objective-C ++, C ++ и Scene Kit

У меня есть проект, который представляет собой смесь чистого C ++ и Objective-C ++ для включения некоторых библиотек C ++.

Я попытался добавить некоторые основные SCNScenes в смесь. (Под базовым я подразумеваю сцену с узлом в нем и все тут). Каждый раз, когда я получаю ошибку:

Ошибка подтверждения: (renderSize.x! = 0), функция — [SCNRenderContextMetal _setupDescriptor: forPass: isFinalTechnique:], файл /BuildRoot/Library/Caches/com.apple.xbs/Sources/SceneKit/SceneKit-332.6/suntime/it NewRenderer / SCNRenderContextMetal.mm, строка 688.

Кто-нибудь знает, что вызывает это, и если так, как я могу обойти это?

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

В моем ViewController.mm У меня есть:

self.sceneView = [[SCNView alloc] initWithFrame:frame];
self.sceneView.scene = [SCNScene scene];

SCNNode *cube = [SCNNode nodeWithGeometry:[SCNBox boxWithWidth:1.0 height:1.0 depth:1.0 chamferRadius:0]];
cube.geometry.firstMaterial.diffuse.contents = [UIColor redColor];
[self.sceneView.scene.rootNode addChildNode:cube];

[self.view addSubview:self.sceneView];

2

Решение

Похоже, вы запускаете сцену SceneKit, используя раскадровку.

Если это так, то последняя версия SDK теперь требует, чтобы вы установили ограничения для представлений, иначе они получат тривиальный размер. Это может быть просто функцией установки ограничений на вашу сцену SceneKit.

Вы также должны установить кадр на что-то действительное, если это не так. например

CGRect frame = [[UIScreen mainScreen] applicationFrame];
4

Другие решения

Я обнаружил, что SceneKit подходит, если вы установите SCNView кадр к CGRectZero, Должен быть как минимум 1 пиксель рендеринга недвижимости. Просто как тот.

3

По вопросам рекламы [email protected]