gpt4 book ai didi

ios - 将 "SCNScene"转换为 "SCNNode"

转载 作者:行者123 更新时间:2023-11-28 06:10:30 27 4
gpt4 key购买 nike

我正在为我的 IT 任务做一个 ARKit 应用程序,我遵循了位掩码和碰撞指南,我让它工作,但它只适用于一个简单的盒子,而不是我的 3D 模型,所以有没有办法转换将此代码添加到底部的代码还是我做错了什么?因为上面的代码没有出现,但是下面的代码出现了:

class Monster: SCNNode {

override init () {
super.init()

guard let virtualObjectScene = SCNScene(named: "Monster.scn", inDirectory: "art.scnassets" ) else {
return
}

let wrapperNode = SCNNode()
for child in virtualObjectScene.rootNode.childNodes {
child.geometry?.firstMaterial?.diffuse.contents = UIColor.black
wrapperNode.addChildNode(child)
}
wrapperNode.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.dynamic, shape: nil)
wrapperNode.physicsBody?.isAffectedByGravity = false
wrapperNode.physicsBody?.categoryBitMask = CollisionCategory.ship.rawValue
wrapperNode.physicsBody?.collisionBitMask = CollisionCategory.bullet.rawValue
wrapperNode.physicsBody?.contactTestBitMask = CollisionCategory.bullet.rawValue
wrapperNode.pivot = SCNMatrix4MakeRotation(Float(CGFloat(Double.pi/2)), 1, 0, 0)

print("Placing Monster")
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

对于这样的事情,因为出于某种原因这段代码有效而最上面的代码没有,我做错了什么吗?

class Bullet: SCNNode {
override init () {
super.init()
let sphere = SCNSphere(radius: 0.025)
self.geometry = sphere
let shape = SCNPhysicsShape(geometry: sphere, options: nil)
self.physicsBody = SCNPhysicsBody(type: .dynamic, shape: shape)
self.physicsBody?.isAffectedByGravity = false
self.physicsBody?.categoryBitMask = CollisionCategory.bullet.rawValue
self.physicsBody?.collisionBitMask = CollisionCategory.ship.rawValue

// add texture
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "bullet_texture.jpg")
self.geometry?.materials = [material]
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

谢谢

最佳答案

使用:SCNReferenceNode

网站:[1]:https://developer.apple.com/documentation/scenekit/scnreferencenode/

用法:定义路径并将其用作引用节点

关于ios - 将 "SCNScene"转换为 "SCNNode",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863004/

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