次の方法を使用して、カメラが認識できるSCNNodeを特定しています。SceneKit nodesInsideFrustumWithPointOfView:予期せず空に戻る
[self.scnView nodesInsideFrustumWithPointOfView:cameraNode];
ただし、返される配列は常に空です。 「私のデバイス上で
testnode = [Testnode createNode];
testnode.position = SCNVector3Make(0, 0, -10);
[self.scnView.scene.rootNode addChildNode:testnode];
、ノードをランダム時
-(void)setupScene{
scene = [SCNScene scene];
cameraNode = [SCNNode node];
cameraNode.camera = [SCNCamera camera];
[scene.rootNode addChildNode:cameraNode];
cameraNode.position = SCNVector3Make(0, 0, 0);
[scene.rootNode addChildNode:cameraNode];
self.scnView.scene = scene;
self.scnView.showsStatistics = YES;
self.scnView.backgroundColor = [UIColor clearColor];
}
をシーンを作成した後、私はシーンにSCNNodeを追加し、次のように 私はシーンを設定しますtestnode "が画面上に表示されていますが、nodesInsideFrustumWithPointOfView:何も返しません。
EDIT:視点をスポットライトオブジェクトに変更し、「テストノード」がその錐台の内側にあるかどうかをテストしました。ここに私が画面に表示されているものがあります:http://imgur.com/a/C3XGuしかし、配列はまだ空を返します。テストノードは白いキューブです。
同じ経験。あなたは修正を見つけましたか? – Crashalot
@クラシャロット私はやった!しかし、ここにそれを書くのを忘れてしまった。うまくいけばそれはあなたにも当てはまります。 isNodeInsideFrustumとnodesInsideFrustumWithPointOfViewは、nullジオメトリを持つノードの子であるノードを検出していないようです。私の場合、ノードはヌルジオメトリを持つノードの子であったパーティクルシステムでした。 – SMD01
Hmm ok、ヒットテストでジオメトリが動作する必要がある場合はちょっと意味があります。将来の読者が利益を得ることができるように、これを回答として投稿してください。 – Crashalot