Compartir a través de


Referencia del nodo Mesh Visual Scripting

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

En intervalo

En el nodo de eventos 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 On Interval .

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 que los scripts respondan 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 corresponding to the In 0 (and so on) inputs that return the observed values.

Al observar variables de script o propiedades de componente, Al cambiar el estado normalmente funciona registrando las devoluciones de llamada adecuadas internamente, evitando la necesidad de volver a evaluar constantemente sus entradas. Cuando no hay disponible una devolución de llamada adecuada, como en el ejemplo siguiente, el nodo Al cambiar de estado se vuelve rojo y el panel Inspector de grafos 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 a un costo de tiempo de ejecución mayor.

Capturas de pantalla del nodo de eventos Al cambiar de estado que se conecta al resultado de comparar un nodo Obtener 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 cuadro de 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. El texto del mensaje se ajustará a la palabra si es necesario.
  • 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 almacenar la respuesta del usuario cuando descarta el cuadro de diálogo seleccionando un botón. (Si se deja vacío, 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 cuadro de diálogo y se establecerá 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 Al cambiar de estado 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 de física

Los nodos de eventos de física Al entrar en el 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 de física observado por estos nodos de eventos 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 desencadenan 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.
  • Canal de transporte o cliente 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 curada para validar scripts visuales con el fin de limitar el acceso a determinados tipos de componentes de Unity y a un subconjunto seguro de sus propiedades.

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

  • Localmente: al impedir el acceso a los datos internos de Mesh y a otros datos confidenciales.
  • Remotamente: 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 escenas.

Ejemplos:

  • Un script visual local malintencionado quiere dar a todos los avatares cabezas bobble. Para ello, intenta examinar toda la escena en busca de GameObjects que representan cabezas de avatar. Mesh filtra automáticamente los resultados del examen para excluir el sistema de avatares.
  • Un cliente remoto malintencionado quiere desfasar la escena volteando todos los GameObjects boca abajo. Para ello, envía una actualización de propiedades que establece la escala vertical de cada GameObject de la escena. Sin embargo, dado que ningún script visual en el cliente receptor está diseñado para hacer algo parecido, el cliente local omite la entrada remota.

Vea también