Globals and Constants
SCRIPTING_RUNTIME_REV
Representa el número de revisión actual del runtime de scripting.
Este valor se puede usar para:
- Verificar compatibilidad con características específicas del runtime.
 - Aplicar lógica condicional para compatibilidad hacia atrás/adelante.
 - Proporcionar alternativas para entornos más antiguos.
 
Ejemplo:
    if (SCRIPTING_RUNTIME_REV < 5) {
      console.warn("Esta función requiere la revisión 5 o posterior.");
    } else {
      enableAdvancedFeature();
    }
M_PI
Constante que representa el valor matemático de π (3.14159...).  
Ejemplo:
    const circumference = 2 * M_PI * radius;
MAX_INT
Constante que representa el valor máximo que un entero con signo de 32 bits puede almacenar (2,147,483,647).  
Ejemplo:
    if (value > MAX_INT) {
      throw new Error("El valor excede el rango de un entero de 32 bits.");
    }
MIN_INT
Constante que representa el valor mínimo que un entero con signo de 32 bits puede almacenar (-2,147,483,648).  
Ejemplo:
    if (value < MIN_INT) {
      throw new Error("El valor está por debajo del rango de un entero de 32 bits.");
    }
DEBUG
Indica si la aplicación se está ejecutando en modo debug.
Útil para habilitar registros adicionales, perfiles o diagnósticos.
Ejemplo:
    if (DEBUG) {
      console.log("Depuración habilitada – se mostrarán registros detallados.");
    }
EDITOR
Indica si la aplicación se está ejecutando dentro de un entorno de editor (en lugar de runtime).
Caso de uso:
Habilitar herramientas solo para el editor, paneles de UI o superposiciones de depuración.
Ejemplo:
ts
if (EDITOR) {
  showEditorToolbar();
}
IS_MOBILE
Indica si el dispositivo actual es una plataforma móvil.
Ejemplo:
    if (IS_MOBILE) {
      enableTouchControls();
    } else {
      enableKeyboardControls();
    }
PLATFORM_WINDOWS
Indica si el sistema operativo actual es Windows.
Ejemplo:
    if (PLATFORM_WINDOWS) {
      console.log("Ejecutando en Windows");
    }
PLATFORM_MACOS
Indica si el sistema operativo actual es macOS.
Ejemplo:
    if (PLATFORM_MACOS) {
      console.log("Ejecutando en macOS");
    }
PLATFORM_LINUX
Indica si el sistema operativo actual es Linux.
Ejemplo:
    if (PLATFORM_LINUX) {
      console.log("Ejecutando en Linux");
    }
PLATFORM_ANDROID
Indica si el sistema operativo actual es Android.
Ejemplo:
    if (PLATFORM_ANDROID) {
      console.log("Ejecutando en Android");
    }
PLATFORM_IOS
Indica si el sistema operativo actual es iOS.
Ejemplo:
    if (PLATFORM_IOS) {
      console.log("Ejecutando en iOS");
    }
DEG_TO_RAD(x: number): number
Convierte un ángulo de grados a radianes.
Ejemplo:
    const radians = DEG_TO_RAD(90); // 1.5708 (π/2)
RAD_TO_DEG(x: number): number
Convierte un ángulo de radianes a grados.
Ejemplo:
    const degrees = RAD_TO_DEG(M_PI); // 180
ASSERT(x: any): void
Verifica si una condición es verdadera y lanza un error en caso contrario.
Ejemplo:
    ASSERT(player != null); // Lanza error si player es null
SURL(url: string): string
Convierte una URL en una URL segura en sandbox, asegurando que esté codificada correctamente. Útil para normalizar URLs antes de realizar solicitudes.
Ejemplo:
    const safeUrl = SURL("https://example.com/unsafe?param=hello world");
    fetch(safeUrl);
self
Referencia al Behaviour actual en el contexto de ejecución.
Se usa para acceder y manipular propiedades o métodos relacionados con el Behaviour.
Ejemplo:
    self.position.set(0, 1, 0);
    self.rotateY(Math.PI / 2);
scene
Referencia global al objeto THREE.Scene. Es el contenedor central para todos los elementos 3D de la aplicación, permitiendo añadir, eliminar y modificar objetos dinámicamente.
Ejemplo:
    scene.add(new THREE.Mesh(new THREE.BoxGeometry(), new THREE.MeshBasicMaterial()));
    scene.remove(oldObject);
camera
Proporciona acceso global a la THREE.Camera de la escena. Se usa para configurar y manipular propiedades de la cámara.
Ejemplo:
    camera.position.set(0, 5, 10);
    camera.lookAt(0, 0, 0);
audioListener
Proporciona acceso global a la instancia de THREE.AudioListener adjunta a la cámara. Es esencial para gestionar y crear fuentes de audio dinámicas dentro de la escena 3D.
Ejemplo:
    const sound = new THREE.Audio(audioListener);
    sound.setBuffer(audioBuffer);
    sound.play();