gpt4 book ai didi

swift - dae 文件中节点的几何形状为零

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:34 25 4
gpt4 key购买 nike

我用 blender 制作了 3d 模型,我想在场景套件中使用它。

var platform = SCNNode();
let dae = SCNScene(named:"platform.dae");
platform = dae!.rootNode;
platform.position = SCNVector3(x: 0,y: 0,z:0);
if platform.geometry == nil {
print("geo is nil.")
}
platform.geometry?.firstMaterial?.diffuse.contents = "wood.png";
platform.geometry?.firstMaterial?.diffuse.wrapS = SCNWrapMode.Repeat
platform.geometry?.firstMaterial?.diffuse.wrapT = SCNWrapMode.Repeat
platform.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.Static, shape: SCNPhysicsShape(node: platform, options: nil));
scene.rootNode.addChildNode(platform);

它总是打印出“geo is nil”。所以我不能为模型制裁剪理体。谁能告诉我为什么会这样?

最佳答案

DAE 文件在加载时返回一个完整的节点树。如果 Blender 文件有灯光和相机(几乎可以肯定有),DAE 的节点树也有。根 SCNNode 没有几何(并且不要求 SCNNode 有一个)。但是你可以找到这样做的 child 。

print (platform)
platform.childNodes.map {
print($0.name, $0.geometry)
}

产生

<SCNNode: 0x7fe008e938d0 | 3 children>
Optional("Camera") nil
Optional("Lamp") nil
Optional("Cube") Optional(<SCNGeometry: 0x7fe00ab08930 'Cube'>)

您可以使用 childNodeWithName()childNodesPassingTest() 来挑选您想要的对象并将其添加到场景中。

关于swift - dae 文件中节点的几何形状为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com