更改 SCNScene 比例
Change SCNScene scale
我正在尝试使用 SCNNode
缩小我的对象这是我的代码:
SCNScene * scene = [SCNScene sceneNamed:@"ship.dae"];
SCNNode *node = [SCNNode node];
//This line doesn't do anything !
node.scale = SCNVector3Make(11, 11, 11);
[scene.rootNode addChildNode:node];
// set the scene to the view
_myView.scene = scene;
_myView.allowsCameraControl = YES;
_myView.autoenablesDefaultLighting = YES;
_myView.backgroundColor = [UIColor whiteColor];
但问题是对象的比例根本没有改变!怎么了?
对于[SCNNode node]
,您正在创建一个与场景和飞船无关的新节点。在下一行中,您缩放该节点的(不存在的)几何体。
改为缩放场景的 rootNode
。
如果您的 .dae
不仅仅包含您打算缩放的飞船,请使用 [scene.rootNode childNodeWithName:shipNodeName recursively:YES]
搜索包含该飞船的节点。
Jörg Kirchhof 的回答是正确的。在 SceneKit 编辑器中查看飞船。场景图的最上面的节点就是你想要的节点。对于 Apple 的示例代码,它是 "ship".
你的第二行 SCNNode *node = [SCNNode node];
在这种情况下没有任何意义,因为它只是一个空节点。将该行替换为下面的行。
SCNNode *node = [scene.rootNode childNodeWithName:@"ship" recursively:YES];
我正在尝试使用 SCNNode
缩小我的对象这是我的代码:
SCNScene * scene = [SCNScene sceneNamed:@"ship.dae"];
SCNNode *node = [SCNNode node];
//This line doesn't do anything !
node.scale = SCNVector3Make(11, 11, 11);
[scene.rootNode addChildNode:node];
// set the scene to the view
_myView.scene = scene;
_myView.allowsCameraControl = YES;
_myView.autoenablesDefaultLighting = YES;
_myView.backgroundColor = [UIColor whiteColor];
但问题是对象的比例根本没有改变!怎么了?
对于[SCNNode node]
,您正在创建一个与场景和飞船无关的新节点。在下一行中,您缩放该节点的(不存在的)几何体。
改为缩放场景的 rootNode
。
如果您的 .dae
不仅仅包含您打算缩放的飞船,请使用 [scene.rootNode childNodeWithName:shipNodeName recursively:YES]
搜索包含该飞船的节点。
Jörg Kirchhof 的回答是正确的。在 SceneKit 编辑器中查看飞船。场景图的最上面的节点就是你想要的节点。对于 Apple 的示例代码,它是 "ship".
你的第二行 SCNNode *node = [SCNNode node];
在这种情况下没有任何意义,因为它只是一个空节点。将该行替换为下面的行。
SCNNode *node = [scene.rootNode childNodeWithName:@"ship" recursively:YES];