Как сделать положение SCNNode одинаковым для дочернего и родительского узлов?
У меня есть сцена с дочерним узлом с именем wc. Я хочу добавить файл dae/model на этот узел.
Я смог добавить модель / Dae с помощью следующего:
- Создать родительскую сцену с активом Dae из комплекта
- Добавьте родительскую сцену в scnView и введите ее в self.view
- Получите необходимый узел, в который нужно добавить dae.
- Создайте вспомогательную сцену с нужным узлом dae.
- Добавьте корневой узел подцены в качестве дочернего узла необходимого узла родительской сцены.
- Установите положение дочернего узла как положение необходимого узла родительской сцены.
Ниже приведен фрагмент:
Фрагмент кода (в 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 не совпадает, что делает модель смещенной в сцене.
Почему позиции разные?
Как мне компенсировать смену?