[英]get node position after physics calculation scenekit
在一個場景包應用程序上工作,我有2個盒子可以互相射擊點。 這是計算第一個盒子需要拍攝的位置:
shot1 = SCNNode()
shot1.geometry = SCNSphere(radius: 0.5)
shot1.physicsBody = SCNPhysicsBody.dynamic()
shot1.position = SCNVector3Make
(boxNode1.position.x,
boxNode1.position.y + 1,
boxNode1.position.z - 1)
scnScene.rootNode.addChildNode(shot1)
而對於第二個框:
shot2 = SCNNode()
shot2.geometry = SCNSphere(radius: 0.5)
shot2.physicsBody = SCNPhysicsBody.dynamic()
shot2.position = SCNVector3Make
(boxNode2.position.x,
boxNode2.position.y + 1,
boxNode2.position.z + 1)
scnScene.rootNode.addChileNode(shot2)
每一次射擊都處於良好的位置,並在物理上施加力量作為沖動拋向另一個盒子。
對於觸摸實現,我使用touchesBegan來搜索觸摸,然后如果觸摸有hitResult,我就像上面描述的那樣開槍。
問題發生在:如果鏡頭例如shot1命中boxNode2,則boxNode2向后移動,因為我期望它,這次如果我用boxNode2開槍,則shot2的起始位置不在boxNode2的新位置,因為我期望它,並開始在它開始的地方開火!
那么如何從boxNodes的新位置開始拍攝?
只需使用presentation
:
let realPosition = yourNode.presentation.worldPosition
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.