Skip to content

Commit 3ec21b2

Browse files
committed
imagetracking:5.1 alpha tip
1 parent a6f1e83 commit 3ec21b2

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

documentation/how-to-guides/scripting/image-tracking.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ This guide covers scripting image tracking from code. For most use cases, the bu
1515
Make sure you have [WebXR Image Tracking](/docs/how-to-guides/xr/image-tracking) set up in your scene first.
1616
:::
1717

18+
:::tip Version
19+
The `WebXRImageTrackingEvent`, `event.detail.trackedImages`, `WebXRImageTrackingModel` constructor, `addImage`, and `img.trackedModel` APIs are available in the current Needle Engine 5.1 alpha and will be part of Needle Engine 5.1.x. If you're using an older engine version, update to the 5.1 alpha or newer.
20+
:::
21+
1822
---
1923

2024
## Setting Up Image Tracking from Code
@@ -23,7 +27,6 @@ You can configure image tracking entirely from TypeScript without the Unity/Blen
2327

2428
```ts
2529
import { Behaviour, WebXRImageTracking, WebXRImageTrackingModel } from "@needle-tools/engine";
26-
import { Object3D } from "three";
2730

2831
export class CodeImageTracking extends Behaviour {
2932
start() {
@@ -37,7 +40,7 @@ export class CodeImageTracking extends Behaviour {
3740
imageDoesNotMove: false,
3841
});
3942

40-
tracker.trackedImages.push(model);
43+
tracker.addImage(model);
4144
}
4245
}
4346
```
@@ -76,11 +79,18 @@ export class ImageTrackingHandler extends Behaviour {
7679
onEnable() {
7780
const tracker = this.gameObject.getComponent(WebXRImageTracking);
7881
// The event is fully typed — event.detail.trackedImages is WebXRTrackedImage[]
79-
tracker?.addEventListener("image-tracking", event => {
80-
for (const img of event.detail.trackedImages) {
81-
console.log(img.url, img.state);
82-
}
83-
});
82+
tracker?.addEventListener("image-tracking", this.onImageTracking);
83+
}
84+
85+
onDisable() {
86+
const tracker = this.gameObject.getComponent(WebXRImageTracking);
87+
tracker?.removeEventListener("image-tracking", this.onImageTracking);
88+
}
89+
90+
private onImageTracking = (event: CustomEvent) => {
91+
for (const img of event.detail.trackedImages) {
92+
console.log(img.url, img.state);
93+
}
8494
}
8595
}
8696
```

documentation/reference/faq.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -795,6 +795,10 @@ For AR on iOS, Needle Engine supports WebXR via [App Clips (Needle Go)](/docs/ex
795795

796796
Each `WebXRTrackedImage` received from the `image-tracking` event gives you access to the assigned 3D object via `img.model.object`:
797797

798+
::: tip
799+
The `event.detail.trackedImages` event shape and `img.trackedModel` shorthand are available in the current Needle Engine 5.1 alpha and will be part of Needle Engine 5.1.x. If you're using an older engine version, update to the 5.1 alpha or newer.
800+
:::
801+
798802
```ts
799803
tracker.addEventListener("image-tracking", event => {
800804
for (const img of event.detail.trackedImages) {

0 commit comments

Comments
 (0)