衝突判定する流れ
ARViewにコリジョンの有効、無効を設定する
// physicsにすると現実世界の物体と衝突した際もぶつかる。
arView.environment.sceneUnderstanding.options = [.collision]
ARSessionを開始する
ARObjectを配置する
モデルエンティティにコリジョンコンポーネントをアタッチする
model.generateCollisionShapes(recursive: false)
エンティティの衝突を検出してイベントを発行する
コリジョンイベントを受診して処理を行う。
コリジョンイベントを検知するためにcombineを使ってシーンをサブスクライブする
collisionBegan = arView.scene.subscribe(to: CollisionEvents.Began.self,
実現したいメソッド)
コリジョンイベント3種類
CollisionEvents.Began
衝突が起きたタイミングで発生する
CollisionEvents.Updated
衝突が起きてから衝突が継続されている間発生する
CollisionEvents.Ended
衝突がなくなった直後に発生する。