Я прочитал много ответов от stackoverflow, но ни один из них не добавил пример кода, который я могу получить от
Я пытался
func createBall (with velocityMultiplier:Float = 0 ,touchLocation:CGPoint = .zero) {
let geo = SCNSphere(radius: 1)
var node = SCNNode(geometry: geo)
node.geometry?.firstMaterial?.diffuse.contents = UIColor.cyan
node = self.update(node, withGeometry: geo, type: .dynamic)
node.physicsBody?.isAffectedByGravity = true
node.physicsBody?.allowsResting = true
let (direction,position) = getUserVector()
node.position = position
node.simdTransform = (sceneView.session.currentFrame?.camera.transform)!
self.sceneView.scene.rootNode.addChildNode(node)
let force = simd_make_float4(0, 0,-3,0)
let rotatedForce = simd_mul((sceneView.session.currentFrame?.camera.transform)!, force)
let vectorForce = SCNVector3(x:rotatedForce.x, y:rotatedForce.y, z:rotatedForce.z)
node.physicsBody?.applyForce(vectorForce , asImpulse: true)
}
Работает нормально, мяч брошен из центра
Здесь Если я изменю положение Y или X на let force = simd_make_float4(0, 2,-3,0)
Мяч не выбрасывается из центра, он выбрасывается на экран
Что мне нужно, так это применить положение Y и Z, чтобы заставить любую помощь цениться