RealityKit を使用して AR 体験を作成しようとしていますが、デフォルトでは、ユーザーの操作によってエンティティが移動すると、エンティティが互いに移動し、重なり合うことがわかりました。
オブジェクトが重なり合って互いに入るのを防ぎたいので、ユーザーがオブジェクトを動かしたときに、重なり合うことなくヒット/バウンドします。
RealityComposer ファイルからエンティティをそのまま読み込んで、シーンに追加しています (catch ブロック内や、この簡略化されたバージョンには表示されていないその他のブロック内)。
let entity = try Experience.loadBallSort()
anchorEntity.addChild(entity)
// anchorEntity is an AnchorEntity that is already attached to the scene
このようなデフォルトのジェスチャを使用して、ユーザーの操作を有効にしています。これは、オブジェクトが一度触れたら止まらないため、オブジェクトがどのように重なり合うかです。
arView.installGestures([.rotation, .translation], for: entity)
Reality Composer 内で、Static モーション タイプで有効化された Physics と、各オブジェクトのデフォルトの Physics マテリアル/コリジョン シェイプがあります。私もgenerateCollisionShapes
そのように使用しようとしましたが、衝突の動作は変わりません:
entity.generateCollisionShapes(recursive: true)
RealityKit でエンティティが重複しないようにするにはどうすればよいですか?