次の方法を使用して、カメラから見える SCNNodes を特定しています。
[self.scnView nodesInsideFrustumWithPointOfView:cameraNode];
ただし、返される配列は常に空です。次のようにシーンをセットアップしました。
-(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 = [Testnode createNode];
testnode.position = SCNVector3Make(0, 0, -10);
[self.scnView.scene.rootNode addChildNode:testnode];
私のデバイスでは、ノード「testnode」が画面に表示されていますが、nodesInsideFrustumWithPointOfView: は何も返しません。
編集: 視点をスポット ライト オブジェクトに変更して、「testnode」が錐台内にあるかどうかをテストしてみました。画面に表示されるのは次のとおりです。http://imgur.com/a/C3XGuそれでも、配列はまだ空を返します。テストノードは白い立方体です。