Compartir a través de


Referencia del nodo De scripting visual de malla

Vaya al artículo Introducción a Visual Scripting.

Al intervalo

Nodo de evento On Interval

El nodo de eventos On Interval desencadena un flujo de script en intervalos de tiempo regulares sincronizados entre todos los clientes de la misma sala.

  • Intervalo: intervalo (en segundos) entre eventos.
  • Retraso: retraso (en segundos) antes del primer evento. Puede usarlo para intercalar eventos con el mismo intervalo desencadenado por distintos nodos en intervalo .

Al cambiar el estado

En el nodo de evento State Changed que se conecta a un nodo Get Variable

El nodo de eventos On State Changed se desencadena cuando cualquiera de sus entradas cambia su valor. Se trata de un mecanismo eficaz que permite a los scripts responder a los cambios de estado causados por la interacción del usuario u otros scripts visuales, tanto localmente como en otros clientes de la misma sala.

  • Valores: especifica cuántos puertos de entrada desea observar. Se pueden observar hasta 10 puertos de entrada simultáneamente. En Cambio de estado se desencadena cuando cualquiera de ellos cambia su valor.
  • En 0, en 1 y más en esta secuencia: entradas observadas para los cambios de estado. Puede adjuntar cualquier nodo de datos a estas entradas: Obtener variable o cualquier propiedad de componente (instancia o estática).
  • Out 0, Out 1, and more in this sequence: Outputs correspondientes a las entradas En 0 (y así sucesivamente) que devuelven los valores observados.

Al observar variables de script o propiedades de componente, On State Changed normalmente funciona mediante el registro de devoluciones de llamada adecuadas internamente, lo que evita la necesidad de volver a evaluar constantemente sus entradas. Cuando una devolución de llamada adecuada no está disponible, como en el ejemplo siguiente, el nodo On State Changed se vuelve rojo y el panel Inspector de Graph advierte de que la entrada no se puede observar de forma eficaz y, por lo tanto, está deshabilitada:

Capturas de pantalla del nodo de eventos On State Changed que se conecta al resultado de comparar un nodo Get Variable con un literal entero, sin sondeo.

En este caso, puede seleccionar Permitir sondeo en el panel Inspector de grafos para forzar Al cambiar el estado para detectar cambios al volver a evaluar constantemente sus entradas. El nodo conserva una barra amarilla a lo largo de su parte superior para recordarle que observa una entrada con un mayor costo en tiempo de ejecución.

Capturas de pantalla del nodo de eventos On State Changed que se conecta al resultado de comparar un nodo Get Variable con un literal entero, permitir el sondeo.

Mostrar cuadro de diálogo

Captura de pantalla del nodo de acción Mostrar cuadro de diálogo

El nodo Mostrar diálogo muestra un cuadro de diálogo con un mensaje personalizado y uno o varios botones que permiten al usuario descartar el cuadro de diálogo.

  • Texto: mensaje que se muestra en el cuadro de diálogo. Si es necesario, el texto del mensaje se ajustará a palabras.
  • Botones: selección de botones que se van a presentar al usuario. Se pueden mostrar los botones siguientes: Aceptar, Cancelar, , No, Confirmar, Siguiente, Reintentar, Continuar, Salir.
  • Resultado: nombre de variable en el que se almacenará la respuesta del usuario al descartar el cuadro de diálogo seleccionando un botón. (Si se deja vacía, se descarta la respuesta).
  • Destino: GameObject con un componente Variables para almacenar la respuesta del usuario.

Si se define una variable Result , se restablecerá a una cadena vacía en cuanto se escriba el nodo Mostrar diálogo y establezca en la respuesta del usuario de forma asincrónica cuando el usuario seleccione un botón para descartar el cuadro de diálogo. El valor almacenado es la etiqueta no localizada del botón de la lista anterior. Use un nodo de evento On State Changed para reaccionar a la respuesta del usuario, como en el ejemplo siguiente:

Captura de pantalla del nodo Mostrar cuadro de diálogo que recopila la respuesta del usuario en una variable, seguida de un nodo On State Changed que responde al cambio de variable

La variable Result puede ser local o compartida. Si se comparte, la respuesta del usuario se envía a todos los clientes de la misma sala y el nodo de eventos On State Changed se desencadena en todos los clientes para reaccionar a la respuesta del usuario.

Nodos de eventos físicos

Los nodos de eventos físicos Al entrar del desencadenador, Al salir del desencadenador, Al entrar en colisión y Al salir de colisión están en red de forma confiable. De forma predeterminada, estos eventos se desencadenan de forma confiable en todos los clientes de la sala; Sin embargo, si el colisionador físico observado por estos nodos de evento está en el ámbito de un componente Ámbito de física local , los eventos se desencadenan de forma confiable en exactamente un cliente. Esto permite que los flujos de script que se desencadenen para leer y escribir de forma confiable el estado compartido (por ejemplo, actualizar una variable de puntuación compartida).

Seguridad

Mesh protege a los usuarios frente a escenarios de amenazas como estos:

  • Contenido de escena en peligro, por ejemplo, intentos malintencionados de acceder a datos locales confidenciales.
  • Cliente o canal de transporte en peligro, por ejemplo, intentos malintencionados de leer o escribir datos remotos inaccesibles en otros clientes.

Para ello, Mesh ejecuta scripts visuales en un espacio aislado (como JavaScript en un explorador web).

En el inicio de la escena, Mesh usa una lista de permitidos seleccionada para validar scripts visuales para limitar el acceso a determinados tipos de componentes de Unity y un subconjunto seguro de sus propiedades.

En tiempo de ejecución de la escena, Mesh limita el acceso a determinadas partes de la escena:

  • Localmente: evitando el acceso a los elementos internos de Mesh y a otros datos confidenciales.
  • De forma remota: comprobando que el autor de la escena pretende modificar esta parte de la escena. Esto se hace mediante el análisis estático de scripts visuales en el lado del receptor para sus posibles escrituras de escena.

Ejemplos:

  • Un script visual local malintencionado quiere dar a todos los avatares cabezas bobble. Para ello, intenta examinar toda la escena de GameObjects que representan los encabezados de avatar. Mesh filtra automáticamente los resultados del examen para excluir el sistema de avatares.
  • Un cliente remoto malintencionado quiere desfase la escena al voltear todos los GameObjects al revés. Para lograrlo, envía una actualización de propiedad que establece la escala vertical de cada GameObject de la escena. Sin embargo, dado que no hay ningún script visual en el cliente receptor está diseñado para hacer algo parecido a eso, el cliente local omite la entrada remota.