[Swift][ARKit] UIPinchGestureRecognizer で SCNNodeを拡大・縮小する

2019年4月3日ITARKit, Swift

UIPinchGestureRecognizer を使って SCNNodeを拡大・縮小します。

例:名前が “robo” のSCNNode全てを拡大・縮小する

enumerateChildNodes メソッドを使って、SceneView にある全てのSCNNodeを対象とし、その中で名前が “robo” のSCNNodeに対して、拡大縮小の処理を実行します。

UIPinchGestureRecognizer の状態が変わる毎に GestureRecognizer のスケールをSCNNodeのスケールx, y, z にそれぞれ掛けます。

それをSCNNodeのスケールに当て直してやります。

GestureRecognizer のスケールを都度 1 に初期化してやると、スケールを塩梅良く制御できます。

1に初期化しないと、大きくなり過ぎたり、小さくなり過ぎたりします。

これでピンチイン、ピンチアウトすることでSCNNodeを拡大・縮小することができます。

Githubにサンプルプロジェクトをアップロードしてますので、よければご参考ください。
https://github.com/nobuhiroharada/ARKit-beginner/tree/master/ARKit-beginner/3-Gesture

スポンサーリンク

Posted by nobuhiro harada