2016-12-24 16 views
0

SceneKit dynamicBodyが休息状態になったときに通知を受け取る方法はありますか? dynamicBodyが地面に落ちて完全に動いてしまったとき、私はかなり大量のものを持っていると推測しているので、bodiesをループして速度をチェックするのではなく、 ?SceneKit SCNPhysicsBodyは休息の通知を受け取ります

答えて

1

isRestingプロパティでKey-Value Observationを使用できます。 Is key-value observation (KVO) available in Swift?を参照してください。

それともSCNPhysicsContactSCNPhysicsContactDelegate床との衝突を検出し、速度のチェックをトリガするためにそれを使用するために使用することができます。

+0

KVOにはいくつかの重要な通行料金がありますか? – ColdSteel

+0

これはいくらかの費用がかかります。どのくらい正確にそれを測定することができます。もっと問題になるのは、KVOはあまりSwift-yではないということです(あなたが使っている言語については言及していません)。私はSCNPhysicsContactコールバックのシーケンス、SCNSceneRendererからのレンダラー(_:didSimulatePhysicsAtTime :)コールバック、およびオブジェクトの速度の更新を、覚えていません。 1つのコールバックで削除のためにノードをエンキューし、別のコールバックでノードを削除する必要があります。連絡担当者を使用すると、スウィフトスタイルが気に入っているように感じられますが、理由を正確には明示できません。 –

+0

私は、Objective-Cを使用しています。私はCPUが窮屈であるため、パフォーマンスについて尋ねました。アニメーションは、ほぼ13ms +フラッシュしています...私は1.2ms未満を残しました.-正直には哀れなもの... – ColdSteel

関連する問題