-1

我正在尝试使用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];

但问题是对象的比例根本没有改变!怎么了 ?

4

2 回答 2

0

[SCNNode node]您一起创建一个与场景和船无关的新节点。在下一行中,您缩放该节点的(不存在的)几何。

而是缩放rootNode场景。

如果您.dae包含的不仅仅是您打算缩放的船,请使用 搜索包含该船的节点[scene.rootNode childNodeWithName:shipNodeName recursively:YES]

于 2016-11-15T19:44:53.000 回答
0

Jörg Kirchhof 的回答是正确的。在 SceneKit 编辑器中查看船。场景图的顶部节点是您想要的节点。对于 Apple 的示例代码,它是“ship”。

SceneKit 编辑器场景图

在这种情况下,您的第二行SCNNode *node = [SCNNode node];没有任何意义,因为它只是一个空节点。将该行替换为下面的行。

SCNNode *node = [scene.rootNode childNodeWithName:@"ship" recursively:YES];
于 2016-11-16T18:53:03.237 回答