ネストされた SCNNode の 3d 位置を x、y (CGPoint) 座標に変換しようとしています (オブジェクトにビューを重ねるため)。
私の SCNNode 構造は次のようになります。
+-----------+
| Root node |
+-----+-----+
|
|
+----+---+
+--+ Node A +--+
| +--------+ |
| |
| |
| |
+---+----+ +----+---+
| Node B | | Node C |
+--------+ +--------+
NodeB の画面空間の 2 次元位置を取得したいと思います。convertPosition:およびprojectPoint:メソッドについては知っていますが、それらを正しく使用しているとは思いません。
ポインタはありますか?
編集:
現在、次のようなことを試みています:
SCNVector3 rootPosition = [[[[self view3D] scene] rootNode] convertPosition:[nodeB position] fromNode:nodeB];
SCNVector3 projectedPoint = [[self view3D] projectPoint:rootPosition];
NSLog(@"x %f y %f z %f", projectedPoint.x, projectedPoint.y, projectedPoint.z);
結果の x、y、z はかなりずれています (オブジェクトがはっきりと表示されているため、画面空間では意味をなさない負の場合もあります)。