ManipulationComponent in both parent and child entities

Hello,

In my project, I have attached a ManipulationComponent to Entity A and as expected, I'm able interact with it using the built-in gestures. I have another Entity B which is a child of A that I would like to interact with as well, so I attempted to add a ManipulationComponent to B. However, no gestures seem to be registered on B; I can still interact with A but B cannot be interacted with despite having ManipulationComponents on both entities.

So I'm wondering if I'm just doing something wrong, if this is an issue with the ManipulationComponent, or if this is a limitation of the API.

Attached is the code used to add the ManipulationComponent to an Entity and it was done on both A and B:

let mc = ManipulationComponent()
model.components.set(mc)

var boxShape = ShapeResource.generateBox(width: 0.25, height: 0.05, depth: 0.25)
        
boxShape = boxShape.offsetBy(translation: simd_float3(0, -0.05, -0.25))

ManipulationComponent.configureEntity(model, collisionShapes: [boxShape])

if var mc = model.components[ManipulationComponent.self] {
    mc.releaseBehavior = .stay
    mc.dynamics.inertia = .low
    model.components.set(mc)
}

I am using visionOS 26.0; let me know if there's any additional information needed.

hi @matthewyang ,

This sounds like a bug report to me, if you wouldn't mind filing that at https://feedbackassistant.apple.com and pasting the FB number here so I can follow up with the right folks, that'd be great!

In the meantime, this does work for me, what it will do is allow you to drag both the child and the parent (together) if you drag the parent. If you drag the child, only the child will move.

Where child is green box and parent is red box.

RealityView { content in
            var manipulationComponent = ManipulationComponent()
            manipulationComponent.releaseBehavior = .stay
            manipulationComponent.dynamics.inertia = .low


            let cube = Entity(components: ModelComponent(mesh: .generateBox(size: 0.1), materials: [SimpleMaterial(color: .red, isMetallic: true)]))

            cube.generateCollisionShapes(recursive: true)
            cube.components.set([HoverEffectComponent(),
                                 InputTargetComponent(),
                                 manipulationComponent
                                ])


            let cube2 = Entity(components: ModelComponent(mesh: .generateBox(size: 0.1), materials: [SimpleMaterial(color: .green, isMetallic: true)]))

            cube2.generateCollisionShapes(recursive: true)
            cube2.components.set([HoverEffectComponent(),
                                 InputTargetComponent(),
                                  manipulationComponent
                                ])
            cube.addChild(cube2)
            cube2.setPosition([0, 0.15, 0], relativeTo: cube)

            content.add(cube)

        }
ManipulationComponent in both parent and child entities
 
 
Q