Compartir a través de


Referencia de nodo de scripting visual mesh

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

On Interval

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 On Interval.

Al cambiar el estado

En el nodo de eventos 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. Este es 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 El cambio de estado se desencadena cuando alguno 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 (etc.) que devuelven los valores observados.

Al observar variables de script o propiedades de componente, On State Changed normalmente funciona registrando las devoluciones de llamada adecuadas internamente, evitando 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 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 los cambios mediante la nueva evaluación constante de 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 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. Si es necesario, el texto del mensaje estará encapsulado por palabras.
  • Botones: selección de botones que se van a presentar al usuario. Se pueden mostrar los siguientes botones: Ok, Cancel, Sí, No, Confirm, Next, Retry, Continue, Leave.
  • Resultado: nombre de variable para almacenar la respuesta del usuario en 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 tan pronto como se escriba el nodo Mostrar cuadro de diálogo y establezca 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 de física

Los nodos de eventos físicos En trigger Enter, On Trigger Exit, On Collision Enter y On Collision Exit 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 De á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 los siguientes:

  • 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 los 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. Al final, intenta examinar toda la escena de GameObjects que representan 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 en 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.

Consulte también