LoginSignup
0

More than 5 years have passed since last update.

ARKitのARSCNViewDelegateのイベント実行順番

Posted at

はじめに

ARKitを使用して開発をする上で、ARSCNViewDelegateのイベントハンドリングでARAnchorを取得して
なにかしら処理をすることはあると思うが、いくつかあるイベントの実行順番が分からなかったので調べてみました。

結論としては

renderer(:nodeFor:)

renderer(
:didAdd:for:)

renderer(:willUpdate:for:)

renderer(
:didUpdate:for:)

renderer(:willUpdate:for:)

renderer(
:didUpdate:for:)

renderer(:willUpdate:for:)

renderer(
:didUpdate:for:)

以下繰り返し

ちょっとおもしろかった発見

カメラで撮った写真、またはライブラリから選択した写真をPlaneに貼り付ける処理をrenderer(:nodeFor:)に実装していたが、
カメラで写真を撮った場合は、その都度renderer(
:nodeFor:)から順番に実行されるが、ライブラリから写真を選択した場合は、
renderer(_:willUpdate:for:)からしか呼ばれないため画像が更新されなかった。
恐らくカメラを起動した場合、シーンが初期化されるのが原因だと思われる。

まとめ

どのイベントに実装すべきか、シーンの状態にも影響されそうなので、
組み合わせて実装する機能の特性も知っておく必要がありそう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0