Saltar al contenido principal

Dónde van los scripts

Puedes añadir un script a un objeto, a una escena, a un espacio o a todo el proyecto. El nivel que elijas decide cuánto tiempo funciona el script, y eso suele importar más que el propio código.

Añadido aFunciona mientrasSe detiene cuando
Un objetoel objeto está en pantallase oculta, se desactiva o se borra
Una escenala escena está activael visitante sale de la escena
Un espacioel visitante está en el espaciopasa a otro espacio
El proyectosiempre, en todos los espaciosel visitante se va

En un objeto​

Es la opción por defecto. Úsala para un comportamiento que pertenece a una sola cosa: una puerta que se abre, un enemigo que persigue, un botón que reacciona.

ctx.entity es ese objeto. El script se detiene en cuanto el objeto desaparece, así que nunca tienes que limpiar lo que deja un objeto que ya no existe.

En una escena​

Añádelo en la sección Scripts de la escena. Úsalo para la lógica de toda la escena: reproducir una introducción en orden, contar cuántos objetos quedan por recoger, decidir cuándo puede pasar el visitante a lo siguiente.

Empieza cuando la escena se activa y se detiene cuando deja de estar activa. En un proyecto de AR, eso significa que empieza cuando se detecta la escena.

En un espacio​

Añádelo en la sección Scripts del espacio. Un script de espacio sigue funcionando cuando cambia la escena. Úsalo para una puntuación a lo largo de tres escenas, un temporizador para toda la visita o una lógica que elige la siguiente escena.

Un toque u otro evento en un objeto también llega al script de espacio: va del objeto a la escena, y de la escena al espacio.

En el proyecto​

Añádelo en los ajustes del proyecto. El script se añade a todos los espacios, así que está ahí vaya donde vaya el visitante.

Úsalo para lo que tiene que durar de un espacio al siguiente: las elecciones del visitante, el progreso general, la analítica.

Qué conserva su valor​

Guardado enTras cambiar de escenaTras cambiar de espacioTras recargar
una variable en initsolo si el script sigue funcionandosolo si el script sigue funcionandono
ctx.storesínono
una variable globalsísíno
una global @space:síno: cada espacio guarda la suya, a propósitono
Al cerrar la pestaña se borra todo

No se conserva nada: ni store ni las variables globales. Si necesitas un valor la próxima vez, envíalo a un sitio tuyo mientras el visitante sigue en la página.

Elige un nivel​

Pregúntate: ¿cuál es la cosa más pequeña de la que trata esta lógica?

  • Un objeto: pon el script en el objeto.
  • Esta escena: ponlo en la escena.
  • Toda la visita: ponlo en el espacio. Si hay varios espacios, ponlo en el proyecto.

No lo pongas todo en el proyecto «por si acaso». Un script de proyecto no puede contar con que haya una escena concreta cargada. Se llena de comprobaciones que un script en un objeto nunca necesita.

Los patches funcionan igual​

También puedes añadir un patch en cualquiera de estos niveles, y funciona durante el mismo tiempo. Un patch en el proyecto es la forma habitual de crear lógica para todo el proyecto sin escribir código.


Siguiente: La API de ctx: todo lo que un script puede hacer con ctx.