私は現在、シーンのルートに地球のようなジオメトリを持つ中央ノードと飛行車両を表すノードを含むシーンを持っています。
しかし、車両の動きを制御するための正しいアプローチが見つかりません。静的な高度と速度で周回しながら左右に旋回する能力が必要です。
私は、アニメーションと物理ボディ フォースの多くの組み合わせを試しましたが、いずれも望ましくない結果につながりました。
私が来た最も近いものは次のとおりです。
- 車両のピボット プロパティをシーンの中心に設定する
次に、以下のようなアクションを設定して、前進を制御します
[_vehicleNode runAction:[SCNAction repeatActionForever:[SCNAction rotateByX:-1 y:0 z:0 duration:10.0]]];
次に、最後に左右に回転する力を加えます
[_vehicleNode.physicsBody applyTorque:SCNVector4Make(0, 1, 0, 1) impulse:YES];
ただし、ピボットや位置を正しい値に設定して、目的の結果を得ることができないようです。
編集:上記の方法が私が探しているソリューションのように見えますが、何らかの理由でジオメトリを車両ノードに追加すると、シーン グラフ内の位置が劇的に変更されます。ハードコーディングされたボタンを追加してその位置を所属する場所に変更すると、その単一のフレームのみが正しく表示され、すぐにどこにもありません。
編集 2: すべてのジオメトリをテスト用のプリミティブ球に置き換えた後、ノードは意図したとおりに回転するようになりましたが、dynamicBody としての宣言を無視しているように見える物理力の影響を受けなくなりました。