我设计了一个由立方体制成的水平仪,形成一个长长的走廊,两侧都有房间,但是当我把它装入场景套件时,事情似乎并不匹配。走廊的地板延伸了整个长度,但物理机构似乎不适合它。在走廊的尽头仍然有一个楼层,但如果玩家走在上面,他就会直接穿过。墙壁(门)之间的一些空间就像玩具无法穿过的固体物体。有一次,我试图走过一条边,但是尽管没有地板,但是在我终于找到了物理体的末端之前,场景表现得好像我还在坚实的地面上。
在Blender中,我通过应用对象变换将每个对象的位置设置为0,0,0,并将比例设置为1,1,1,以便在我将它们移过时更容易使用。
有没有办法解决这个问题或者在场景工具包中看到物理实体,这样我就可以弄清楚发生了什么?
let Scene2: SCNScene = SCNScene(named: "art.scnassets/hallway.dae")!
var nodeArray = Scene2.rootNode.childNodes
var node = SCNNode()
for childNode in nodeArray {
println(childNode.position.z)
var cN = childNode as SCNNode
cN.scale = SCNVector3Make(cN.scale.x * 150, cN.scale.y * 150, cN.scale.z * 150)
cN.position = SCNVector3Make(cN.position.x, cN.position.y, cN.position.z)
cN.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.Static, shape: nil)
cN.physicsBody?.categoryBitMask = rockCategory
cN.physicsBody?.collisionBitMask = 3
node.addChildNode(cN)
if( childNode.name == "BackWall"){
backWallLoc = SCNVector3Make(cN.position.x, cN.position.y, cN.position.z)
println(backWallLoc.y)
}
}
scene.rootNode.addChildNode(node)