簡體   English   中英

在物理計算scenekit之后得到節點位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM