This commit is contained in:
2026-04-21 14:58:22 +08:00
parent 2f48948e43
commit e7c1611f6b
23 changed files with 748 additions and 49 deletions

View File

@ -4,7 +4,8 @@ import {
ModelLoadedPayload,
ModelLoadErrorPayload,
ModelLoadProgressPayload,
SceneReadyPayload
SceneReadyPayload,
HotspotClickPayload
} from './types';
/**
@ -34,6 +35,9 @@ export class EventBridge {
static allReady(payload: SceneReadyPayload): Emitter {
return emit("all:ready", payload);
}
static hotspotClick(payload: HotspotClickPayload): Emitter {
return emit("hotspot:click", payload);
}
// Listeners
static onModelLoadProgress(callback: (payload: ModelLoadProgressPayload) => void, context?: unknown): Emitter {
@ -58,6 +62,9 @@ export class EventBridge {
static onAllReady(callback: (payload: SceneReadyPayload) => void, context?: unknown): Emitter {
return on("all:ready", callback, context);
}
static onHotspotClick(callback: (payload: HotspotClickPayload) => void, context?: unknown): Emitter {
return on("hotspot:click", callback, context);
}
static onceSceneReady(callback: (payload: SceneReadyPayload) => void, context?: unknown): Emitter {
return once("scene:ready", callback, context);
}

View File

@ -35,3 +35,10 @@ export type ModelClickPayload = {
export type SceneReadyPayload = {
scene: Scene | null;
};
export type HotspotClickPayload = {
id: string;
name?: string;
meshName?: string;
payload?: unknown;
};