Issue with Behaviors + Timelines in VisionOS

Hello,

I'm unable to activate a timeline in my application through an OnTap, OnAddedToScene or OnNotification.

In RCP I can test and play the timelines easily.

When running in the simulator or on device the timelines simply do not run, regardless of the method through which I try to call the API.

I have two questions:

  1. How can I check that my timelines are in my RCP project that's loaded into the scene? I don't see timelines in the entity hierarchy when I debug in RealityKit Debugger
  2. Is Behaviors a component I can manually set at runtime? I can very clearly see the behaviors component attached to my entity in RCP, but when running this code:
.gesture(
    TapGesture()
        .targetedToAnyEntity()
        .onEnded { value in
            if value.entity.applyTapForBehaviors() {
                print("Success!")
            } else {
                print("Failure.")
            }
        }
)

It prints "Failure." every time indicating to me that the entity does not have a Behavior attached to it (whether that's a component or however else the Behavior is associated with the entity)

I also have not had success using the Notification system or even the OnAddedToScene behavior trigger which should theoretically work if a behavior is attached to the entity which the tap experiment indicates it's not.

For context this is my notification trigger code:

private let notificationTrigger = NotificationCenter.default
    .publisher(for: Notification.Name("RealityKit.NotificationTrigger"))

@Environment(\.realityKitScene) var scene

Attachment(id: "home") {
    Button {
        NotificationCenter.default.post(
            name: NSNotification.Name("RealityKit.NotificationTrigger"),
            object: nil,
            userInfo: [
                "RealityKit.NotificationTrigger.Scene": scene,
                "RealityKit.NotificationTrigger.Identifier": "test"
            ]
        )
    } label: {
        Text("Test")
    }
    .padding(20)
    .glassBackgroundEffect()
}

.onReceive(notificationTrigger) { _ in
            print("test notification received")

I am receiving "test notification received" print statements as well.

I'm using Xcode 16.0 with VisionOS 2.0 on MacOS 15.3.1

Answered by itsah in 825208022

The issue was I was adding in individual Entities one by one from RCP and not the Scene itself.

The scene/representation entity of the entire project has the hierarchy that the lower level entities need to find their Behavior components.

Accepted Answer

The issue was I was adding in individual Entities one by one from RCP and not the Scene itself.

The scene/representation entity of the entire project has the hierarchy that the lower level entities need to find their Behavior components.

Issue with Behaviors + Timelines in VisionOS
 
 
Q