我正在创建一个玩家可以控制立方体的游戏。
他可以购买新的立方体。
我创建了基本的多维数据集:
// MAIN CUBE
mainCubeGeometry = SCNBox(width: 0.2, height: 0.2, length: 0.2, chamferRadius: 0.0)
mainCubeGeometry.firstMaterial?.diffuse.contents = UIColor.redColor()
mainCubeNode = SCNNode(geometry: mainCubeGeometry)
mainCubeNode.position = SCNVector3(x: 0.0, y: 0.0, z: 0.0)
scene.rootNode.addChildNode(mainCubeNode)
我想知道如何使用在任何软件上创建的立方体的3D模型(dae)(SketchUp per exemple)。我不太了解如何在创建场景时加载3D文件(scene = SCNScene(named: "3d.scnassets/cube.dae")
),因为它是一个场景,所以它将一个场景导入我的原始场景,而我只想导入一个3D模型像我的基本多维数据集一样使用它的节点。
感谢您的帮助!
答案 0 :(得分:2)
SCNScene(named:)
返回SCNNode
,其中包含该DAE文件中的所有对象作为子节点。加载文件,检索您感兴趣的实体,并将它们添加到场景的根节点。
以下是Fox sample app from WWDC 2015的几个片段。 Character
类的node
属性初始化如下:
let characterScene = SCNScene(named: "game.scnassets/panda.scn")!
let characterTopLevelNode = characterScene.rootNode.childNodes[0]
node.addChildNode(characterTopLevelNode)
然后将角色添加到场景中:
// Add the character to the scene.
scene.rootNode.addChildNode(character.node)
答案 1 :(得分:2)
<强>解强>
我在这篇文章中找到了一个解决方案:如何在IOS SceneKit中将.dae文件加载到SCNNode中?
class func collada2SCNNode(filepath:String) -> SCNNode {
var node = SCNNode()
let scene = SCNScene(named: filepath)
var nodeArray = scene!.rootNode.childNodes
for childNode in nodeArray {
node.addChildNode(childNode as SCNNode)
}
return node
}
使用:
let myNode = collada2SCNNode("nodes.scnassets/node.dae")
scene.rootNode.addChildNode(myNode)