Global Functions
Este documento lista las funciones utilitarias globales principales proporcionadas por el entorno de la API de scripting. Cada entrada muestra una breve descripción, detalles de parámetros/retorno y un ejemplo concreto.
cast<T>(object: any, classType: T): T
Convierte un objeto a un tipo de clase específico. El objeto debe ser una instancia o compatible con el constructor proporcionado.
Ejemplo:
const model = cast<ModelElement>(someObj, ModelElement);
spawn(obj: THREE.Object3D, options?: SpawnOptions): THREE.Object3D
Clona un THREE.Object3D
y añade el clon a la escena. SpawnOptions
puede especificar posición, rotación, escala, visibilidad, retardo y padre.
Ejemplo:
const clone = spawn(originalMesh, {
position: new THREE.Vector3(1, 2, 3),
rotation: new THREE.Euler(0, Math.PI / 2, 0),
scale: 1.5,
visible: true,
delay: 200,
parent: scene
});
destroy(obj: THREE.Object3D, options?: DestroyOptions): void
Elimina y opcionalmente libera un THREE.Object3D
de la escena. DestroyOptions
puede incluir un retardo y banderas de liberación.
Ejemplo:
// Eliminar inmediatamente y liberar recursos
destroy(clone);
// O programar la eliminación después de 1 segundo
destroy(clone, { delay: 1000 });
delayed(action: Function, interval: number, ...args: any): CancellationHandler
Programa la ejecución de action
después de interval
milisegundos. Devuelve un CancellationHandler
(una función sin argumentos) que cancela la ejecución programada si se invoca antes de su ejecución.
Ejemplo:
const cancel = delayed((msg: string) => console.log(msg), 1500, 'Hola después de 1.5s');
Llama a
cancel();
para abortar antes de la ejecución.
throttled(action: Function, interval: number): ThrottledFunction
Devuelve un contenedor limitado de action
que asegura que solo se ejecute una vez cada interval
milisegundos.
Ejemplo:
const throttledLog = throttled((position) => console.log('Posición del ratón', position), 500);
if (Input.mouse.isButtonPressed(MouseButton.Left)) {
throttledLog();
}
Funciones de Observador
emit(sender: string, data: any): void
Emite un mensaje en la cola de observables para sender
. Los suscriptores que estén escuchando a sender
recibirán data
.
Ejemplo:
emit('scoreUpdate', { score: 123, playerId: 'player1' });
subscribe(sender: string): void
Suscribe el script actual a los mensajes emitidos por un sender
específico. Una vez suscrito, tu script puede reaccionar a estos mensajes usando el hook de ciclo de vida observe(event: any)
.
Ejemplo:
// Suscribirse a actualizaciones y luego manejarlas en tu handler de mensajes
subscribe('scoreUpdate');
unsubscribe(sender: string): void
Cancela la suscripción del script actual a los mensajes emitidos por sender
.
Ejemplo:
unsubscribe('scoreUpdate');
Funciones de Animación
startAnimationSession(model: ModelElement): Promise<boolean>
Inicia una sesión de animación para el ModelElement
proporcionado. Resuelve en true
cuando la sesión se inicia con éxito.
Ejemplo:
(async () => {
const success = await startAnimationSession(myModel);
if (success) {
console.log('Sesión de animación iniciada');
} else {
console.warn('No se pudo iniciar la sesión de animación');
}
})();