Compartilhar via


Referência do nó Mesh Visual Scripting

Vá para o artigo de visão geral do Visual Scripting

No intervalo

No nó do evento Interval

O nó de evento On Interval dispara um fluxo de script em intervalos de tempo regulares sincronizados entre todos os clientes na mesma sala.

  • Intervalo: Intervalo (em segundos) entre eventos.
  • Atraso: Atraso (em segundos) antes do primeiro evento. Você pode usar isso para intercalar eventos com o mesmo Intervalo acionado por nós On Interval diferentes.

Sobre o estado alterado

No nó de evento Estado Alterado conectando-se a um nó Obter Variável

O nó de evento On State Changed é acionado quando qualquer uma de suas entradas altera seu valor. Esse é um mecanismo poderoso que permite que seus scripts respondam a alterações de estado causadas pela interação do usuário ou outros scripts visuais, tanto localmente quanto em outros clientes na mesma sala.

  • Valores: especifica quantas portas de entrada você gostaria de observar. Até 10 portas de entrada podem ser observadas simultaneamente. Na alteração de estado é acionado quando qualquer um deles altera seu valor.
  • Em 0, Em 1 e mais nesta sequência: Entradas observadas para mudanças de estado. Você pode anexar qualquer nó de dados a essas entradas: Get Variable ou qualquer propriedade de componente (instância ou estática).
  • Out 0, Out 1 e mais nesta sequência: Saídas correspondentes às entradas In 0 (e assim por diante) que retornam os valores observados.

Ao observar variáveis de script ou propriedades de componentes, On State Changed geralmente opera registrando retornos de chamada apropriados internamente, evitando a necessidade de reavaliar constantemente suas entradas. Quando um retorno de chamada apropriado não está disponível, como no exemplo a seguir, o nó No estado alterado fica vermelho e o painel Inspetor de gráfico avisa que a entrada não pode ser observada com eficiência e, portanto, está desabilitada:

Capturas de tela do nó de evento On State Changed conectando-se ao resultado da comparação de um nó Get Variable com um literal inteiro, sem sondagem.

Nesse caso, você pode selecionar Permitir sondagem no painel Inspetor de gráfico para forçar Ativado Estado alterado para detectar alterações reavaliando constantemente suas entradas. O nó mantém uma barra amarela ao longo de sua parte superior para lembrá-lo de que está observando uma entrada a um custo de tempo de execução maior.

Capturas de tela do nó de evento On State Changed conectando-se ao resultado da comparação de um nó Get Variable com um literal inteiro, permitem a sondagem.

Mostrar caixa de diálogo

Captura de tela do nó de ação Mostrar Caixa de Diálogo

O nó Mostrar caixa de diálogo exibe uma caixa de diálogo com mensagem personalizada e um ou vários botões que permitem ao usuário descartar a caixa de diálogo.

  • Texto: Mensagem mostrada na caixa de diálogo. O texto da mensagem será quebrado em linha se necessário.
  • Botões: Seleção de botões para apresentar ao usuário. Os seguintes botões podem ser mostrados: OK, Cancelar, Sim, Não, Confirmar, Avançar, Repetir, Continuar, Sair.
  • Resultado: nome da variável para armazenar a resposta do usuário quando ele descartar a caixa de diálogo selecionando um botão. (Se deixada vazia, a resposta será descartada.)
  • Destino: GameObject com um componente Variáveis para armazenar a resposta do usuário.

Se uma variável Result for definida, ela será redefinida para uma cadeia de caracteres vazia assim que o nó Mostrar caixa de diálogo for inserido e definida como a resposta do usuário de forma assíncrona quando o usuário selecionar um botão para descartar a caixa de diálogo. O valor armazenado é o rótulo não localizado do botão da lista acima. Use um nó de evento On State Changed para reagir à resposta do usuário, como no exemplo a seguir:

Captura de tela do nó Mostrar caixa de diálogo coletando a resposta do usuário em uma variável, seguida por um nó On State Changed respondendo à alteração da variável

A variável Result pode ser local ou compartilhada. Se for compartilhada, a resposta do usuário será enviada para todos os clientes na mesma sala, e o nó de evento On State Changed será acionado em todos os clientes para reagir à resposta do usuário.

Nós de eventos de física

Os nós de eventos físicos On Trigger Enter, On Trigger Exit, On Collision Enter e On Collision Exit são conectados em rede de forma confiável. Por padrão, esses eventos são acionados de forma confiável em todos os clientes na sala; no entanto, se o colisor de física observado por esses nós de evento estiver no escopo de um componente Escopo de Física Local, os eventos serão acionados de forma confiável em exatamente um cliente. Isso possibilita que os fluxos de script disparados leiam e gravem de forma confiável o estado compartilhado (por exemplo, atualizar uma variável de pontuação compartilhada).

Segurança

O Mesh protege os usuários contra cenários de ameaça, como estes:

  • Conteúdo de cena comprometido — por exemplo, tentativas maliciosas de acessar dados locais confidenciais.
  • Cliente ou canal de transporte comprometido — por exemplo, tentativas maliciosas de ler ou gravar dados remotos inacessíveis em outros clientes.

Para conseguir isso, o Mesh executa scripts visuais em uma área restrita (como JavaScript em um navegador da Web).

Na inicialização da cena, o Mesh usa uma lista de permissões selecionada para validar scripts visuais para limitar o acesso a certos tipos de componentes Unity e um subconjunto seguro de suas propriedades.

No tempo de execução da cena, o Mesh limita o acesso a certas partes da cena:

  • Localmente: impedindo o acesso a Mesh internos e outros dados confidenciais.
  • Remotamente: verificando se o autor da cena pretende que essa parte da cena seja modificada. Isso é feito analisando estaticamente scripts visuais do lado do receptor para suas possíveis gravações de cena.

Exemplos:

  • Um script visual local malicioso quer dar a todos os avatares cabeças de bobble. Para esse fim, ele tenta escanear toda a cena em busca de GameObjects que representam cabeças de avatar. O Mesh filtra automaticamente os resultados da digitalização para excluir o sistema de avatar.
  • Um cliente remoto mal-intencionado quer desfigurar a cena invertendo todos os GameObjects de cabeça para baixo. Para conseguir isso, ele envia uma atualização de propriedade que define a escala vertical de cada GameObject na cena. No entanto, como nenhum script visual no cliente de recebimento foi projetado para fazer algo assim, o cliente local ignora a entrada remota.

Confira também