Как сделать положение SCNNode одинаковым для дочернего и родительского узлов?

У меня есть сцена с дочерним узлом с именем wc. Я хочу добавить файл dae/model на этот узел.

Я смог добавить модель / Dae с помощью следующего:

  1. Создать родительскую сцену с активом Dae из комплекта
  2. Добавьте родительскую сцену в scnView и введите ее в self.view
  3. Получите необходимый узел, в который нужно добавить dae.
  4. Создайте вспомогательную сцену с нужным узлом dae.
  5. Добавьте корневой узел подцены в качестве дочернего узла необходимого узла родительской сцены.
  6. Установите положение дочернего узла как положение необходимого узла родительской сцены.

Ниже приведен фрагмент:

Фрагмент кода (в viewDidLoad)

//Create Scene
SCNScene *scene = [SCNScene sceneNamed:@"bathScene.scnassets/peace01.dae"];
SCNView *scnView = (SCNView *)self.view;
scnView.scene = scene;
scnView.allowsCameraControl = YES;
scnView.delegate = self;
scnView.autoenablesDefaultLighting = YES;

//Get the required node where dae is to be added
SCNNode * wcNode = [scnView.scene.rootNode childNodeWithName:@"wc" recursively:YES];
SCNVector3 wcNodeScreenPosition = [scnView projectPoint:wcNode.position];
NSLog(@"wcNode position %f, %f, %f",wcNodeScreenPosition.x, wcNodeScreenPosition.y, wcNodeScreenPosition.z);


//Create sub-Scene
SCNScene* wcScene = [SCNScene sceneNamed:@"bathScene.scnassets/closet.dae"];


//Add the sub-scene root node to the required node of parent scene            
[scnView.scene.rootNode addChildNode:[wcScene.rootNode childNodeWithName:@"ceramic" recursively: false]];
SCNNode * wcDAENode = [wcScene.rootNode childNodeWithName:@"ceramic" recursively: false];
wcDAENode.position = [wcNode position];
SCNVector3 wcDAENodeScreenPosition = [scnView projectPoint:wcDAENode.position];
NSLog(@"DAE position %f, %f, %f",wcDAENodeScreenPosition.x, wcDAENodeScreenPosition.y, wcDAENodeScreenPosition.z);

Выход журнала

позиция wcNode 275.306549, 157.163620, 0.956176

DAE позиция 284,000000, 160,000000, 0,959596

Как вы можете видеть в вышеупомянутом выводе журнала, положение требуемого узла и его дочернего Dae Node не совпадает, что делает модель смещенной в сцене.

Почему позиции разные?

Как мне компенсировать смену?

0 ответов

Другие вопросы по тегам