Saltar al contenido principal

Patches

Un patch es comportamiento que dibujas. Se coloca justo entre los eventos, que son simples pero no pueden guardar un valor ni hacer aritmética, y los scripts, que pueden hacer cualquier cosa pero te piden escribir código.

Recurre a un patch la primera vez que te pilles queriendo «…pero solo si la puntuación pasa de diez» o «…muévelo un poco más lejos cada vez».

Tu grafo se convierte en un script de verdad

Los patches se compilan, no se interpretan, así que corren exactamente igual de rápido que el código escrito a mano. Puedes leer el script generado en cualquier momento en el panel de código, que además es la forma más rápida de comprobar que un grafo hace lo que querías.

Cada nodo con sus puertos: referencia de nodos de patch — 203 nodos repartidos en 24 categorías.

Cuatro clases de nodo

ClaseCómo lo reconocesQué es
Eventsolo salidas, una de ellas un pulsodonde empieza el grafo: al lanzar, al tocar, en cada fotograma
Effectun pulso de entrada y otro de salidahace algo, en orden
Controldivide o repite el pulsorama, compuerta, repetición, for-each, once, retardo
Dataningún pulsoun valor: un número, una suma, el campo de un componente

El cable de pulso es el orden en que pasan las cosas. Síguelo desde un nodo de evento y estarás leyendo la secuencia. Los cables de datos solo llevan valores; no tienen orden.

Puertos y cables

Los puertos tienen tipo (número, booleano, cadena, vector, color, objeto) y los tipos incompatibles no se conectan, lo que pilla bastantes errores antes de ejecutar nada.

Un puerto de vector se despliega en x, y y z, así que puedes cablear uno y escribir los otros dos.

Una entrada que dejas sin conectar usa el valor que hayas escrito en el nodo. Normalmente es lo que quieres: cablea solo las partes que cambian.

Decirle a un nodo con qué objeto trabajar

Los nodos de componente («get transform», «set material») necesitan saber qué objeto.

Deja el enlace vacío y significará este objeto, aquel al que está adjunto el patch. Rellénalo y el nodo trabajará sobre ese otro objeto.

Dos comodidades que conviene conocer:

  • Los nodos get son indulgentes. Leer un componente que el objeto no tiene no devuelve nada, en vez de romper el grafo.
  • Los nodos set solo escriben lo que hayas rellenado. Todo lo que dejaste en paz se queda como estaba.
Los puertos de rotación van en grados

Igual que todo lo demás que puedes ver. Recuérdalo solo si pasas valores entre un patch y un script, donde la rotación va en radianes.

CategoríaQué encontrarás
events30 puntos de partida: lanzamiento, fotograma, toque, teclas, colisiones, seguimiento
componentsleer y escribir cualquier componente
math · vector · logic · stringaritmética, comparaciones, vectores, texto
flowrama, compuerta, repetición, for-each, once, retardo, secuencia
statecontador, interruptor, temporizador, suavizado
entities · lifecycleencontrar objetos, crear, generar, destruir
physicsimpulsos, fuerzas, velocidad, raycast
netmultijugador: enviar, recibir, estado compartido, generar
globals · variables · messagingvalores compartidos con otros patches y scripts
uileer y escribir las variables de una tarjeta de interfaz
functionsllamar a otro patch, o a un script

Reutilizar un patch

Guarda un grafo como recurso y podrás soltarlo en otros lienzos. Cómo se comporta depende de cómo lo hayas construido:

Has construidoObtienes
ningún nodo de entrada ni de salidaun comportamiento: lo sueltas y corre, sin cables
entradas, salidas y una entrada de pulsoun paso: corre cuando llega el pulso, y después las salidas están listas
entradas y salidas, sin pulsouna función: sus salidas se calculan allí donde se leen

Sus conectores salen de los nodos de entrada y salida que pusiste dentro: añade uno y aparecerá en todos los que lo llaman. Edita el patch y todo lo que lo llame se actualiza en vivo.

Un patch de función no tiene objeto propio

Dentro de una función pura no existe «este objeto», así que los nodos de objeto y de componente no pintan nada ahí. Reserva las funciones para datos, matemáticas y lógica, y haz el trabajo de escena en quien la llama.

Los patches también pueden llamar a scripts, que es la forma habitual de llegar a algo que el catálogo no cubre.

Valores que sobreviven al grafo

Tres formas de conservar algo, que se diferencian por su alcance:

AlmacénCompartido con
variableslos nodos de este único patch
globalstodos los patches, scripts y eventos del proyecto
messagesquien esté escuchando, como aviso puntual por nombre

Los globals vienen en dos ámbitos: de proyecto (sobreviven al paso entre spaces) y solo de space (empiezan de cero). Los nombres se escriben en vez de cablearse, lo que mantiene el enrutado predecible.

La salida de emergencia

Dos nodos aceptan JavaScript directamente: expression devuelve un valor y action ejecuta instrucciones. Dentro tienes disponible todo lo que alcanza un script.

Están ahí para esa cosita que le falta al catálogo, no como forma de vida. Si te ves escribiendo mucho dentro de ellos, escribe un script y llámalo desde el grafo.

Cuando algo no va bien

Abre el panel de código. Un grafo que no compila —un bucle en los cables de datos, JavaScript roto en un nodo action— te lo dice ahí.

Y un patch roto nunca se lleva la escena por delante: los demás siguen corriendo.


Siguiente: Controles de juego — deja que la gente camine.