2017-08-02 6 views
0

小惑星が遠くからあなたを迂回してSceneKit(z> 0)に向かう単純な小惑星ゲームをしたかったのです。SceneKitのアニメーション中に衝突が起こるのですか?

let moveAction = SCNAction.move(to: SCNVector3(0, -10, 10), duration: 2) 
rockNode.runAction(moveAction) 

は私が視覚的に、衝突検出が発生しない小惑星は、宇宙船を通過見ることができるにもかかわらず、Z軸0で宇宙船を持っていると言います。衝突は、moveActionの終点がZ軸0で終わり、宇宙船と同じ位置にある場合にのみ発生します。

moveActionが終了した後で検出が行われるだけです(したがって、衝突は検出されません)。もしそうなら、小惑星の移動中に衝突を検出するのにどのような解決策がありますか?

答えて

0

両方のオブジェクトでisDynamicをtrueに設定しましたか?それらはどちらも別のcategoryBitmasksを持っている必要があります。それ以外の場合、SceneKitはオブジェクトを同じオブジェクトとして扱います(まだコメントしていない場合は50人です)。そうしないと、オブジェクトをプログラムで移動しても衝突が発生する。

+0

連絡先アニメーションが宇宙船と同じ場所で終了した場合に起こったので、これは「カテゴリBitmasksの問題を設定しなかったために起こったことはありません。 –

関連する問題