1

rootNodeに削除および追加されたサブノードの位置を保持するのに問題があります。親ノードとサブノードの両方にピボット変換があり、これが問題の一部だと思います。transformプロパティをworldtransformプロパティに設定してから、ノードを削除してルートに再接続しようとしました。しかし、位置がわずかに移動します。ピボット トランスフォームを削除し、ワールドトランスフォームをルート ノードに追加して、ピボットを復元しようとまし。解決したと思っても、特定のノードをルート ノードとして再接続するとジャンプすることがあります。

サブノードと親ノードのピボットがworldtransformに影響しているようです。したがって、親ノードを方程式から外すと、最終的な位置がずれるようです。

物理的な位置/回転を維持しながら、サブノードをルートノードに追加する方法はありますか?

任意のポインタをいただければ幸いです。

4

2 に答える 2

1

それを行うための API はありません。ただし、SceneKit は-[SCNNode convertTransform:toNode:]やなどの変換ユーティリティを公開してい-[SCNNode convertPosition:toNode:]ます。

以下はおそらくあなたが望むものです:

node.transform = [node.parentNode convertTranform:node.transform toNode:nil];
[node removeFromParentNode];
[scene.rootNode addChildNode:node];
于 2015-05-03T09:01:29.297 に答える