Hey以下私は自分のゲームシーン/世界に物理があるかどうかをテストするために作成した通常の球を持っています。だから、私は単にボールをシーン/世界に置くだけで完璧です。それは重力の影響を受けます。だから私は.scnファイルにまったく同じことをしようとします。私は重力に落ちる試験球と同じ物理学を与えます。男は動かない。重力は、通常の重力 コードをシミュレートするために-9.8に設定されている:男性下記SceneKitの.scnオブジェクトにシンプルフィジックスを適用するXCODE SWIFT
//----Test-Circle-here--------------------
var sphere1: SCNNode!
let sphereGeometry = SCNSphere(radius: 10.5)
let sphereMaterial = SCNMaterial()
let collisionCapsuleRadius = CGFloat(0.4 - 0.4) * 0.4
let collisionCapsuleHeight = CGFloat(0.4 - 0.4)
sphereMaterial.diffuse.contents = UIColor.greenColor()
sphereGeometry.materials = [sphereMaterial]
sphere1 = SCNNode(geometry: sphereGeometry)
sphere1.position = SCNVector3(x: 1.0, y: 0.05, z: 0.05)
//----Giving it a physics---------
sphere1.physicsBody?.affectedByGravity = true
sphere1.physicsBody?.friction = 0
sphere1.physicsBody?.restitution = 1 //bounceness of the object
sphere1.physicsBody?.angularDamping = 1 // rotationess
sphere1.physicsBody = SCNPhysicsBody(type: .Dynamic, shape:SCNPhysicsShape(geometry: SCNCapsule(capRadius: collisionCapsuleRadius, height: collisionCapsuleHeight), options:nil))
scnView.scene!.rootNode.addChildNode(sphere1)
をどんないくつかの方法を
class Character {
let node = SCNNode()
init() {
let GuyScene = SCNScene(named: "art.scnassets/FoxMan2.scn")
let characterTopLevelNode: SCNNode = GuyScene!.rootNode.childNodeWithName("Guy", recursively: true)!
let collisionCapsuleRadius = CGFloat(0.4 - 0.4) * 0.4
let collisionCapsuleHeight = CGFloat(0.4 - 0.4)
characterTopLevelNode.position = SCNVector3(x: 10.0, y: 0.0, z: 0.0)
//----Giveing it a physics---------
characterTopLevelNode.physicsBody?.affectedByGravity = true
characterTopLevelNode.physicsBody?.friction = 0
characterTopLevelNode.physicsBody?.restitution = 1 //bounceness of the object
characterTopLevelNode.physicsBody?.angularDamping = 1 // rotationess
characterTopLevelNode.physicsBody = SCNPhysicsBody(type: .Dynamic, shape:SCNPhysicsShape(geometry: SCNCapsule(capRadius: collisionCapsuleRadius, height: collisionCapsuleHeight), options:nil))
node.addChildNode(characterTopLevelNode)
}
}