将.dae文件加载为场景元素
此代码工作,将文件加载为场景:
let scene = SCNScene(named: "art.scnassets/base-wall-tile_sample.dae")!这段代码将文件加载为SCNGeometry,不会:
let url = Bundle.main.url(forResource: "art.scnassets/base-wall-tile_sample", withExtension: "dae")
let source = SCNSceneSource(url: url! )
let geo = source!.entryWithIdentifier("Geo", withClass: SCNGeometry.self)!url和source没有问题,但在尝试生成geo时会崩溃。错误的指令。
这段代码,就像网上提供的几个例子一样,是在Swift 2 (load a collada (dae) file into SCNNode (Swift - SceneKit).我不得不将其添加到Swift 3中,但翻译过程中似乎遗漏了一些东西。有没有人能告诉我怎么做才对?
发布于 2017-07-13 05:04:23
.dae文件始终作为SCNScene加载。需要命名包含要添加的几何体的节点。然后可以加载场景,将其过滤为具有给定名称的节点,并将其添加到场景中。
func addNode(named nodeName, fromSceneNamed: sceneName, to scene: SCNScene) {
if let loadedScene = SCNScene(named: sceneName),
let node = loadedScene.rootNode.childNode(withName: nodeName, recursivly: true) {
scene.rootNode.addChildNode(node)
}
}发布于 2018-10-27 21:13:38
guard let shipScene = SCNScene(named: "ship.dae") else { return }
let shipNode = SCNNode()
let shipSceneChildNodes = shipScene.rootNode.childNodes
for childNode in shipSceneChildNodes {
shipNode.addChildNode(childNode)
}
node.addChildNode(shipNode)https://stackoverflow.com/questions/45061583
复制相似问题