Compartilhar via


Referência de nó de script visual de malha

Vá para o artigo Visão geral do Visual Scripting

No Intervalo

Nó de evento No 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 usá-lo para intercalar eventos com o mesmo Intervalo disparado por diferentes nós de Intervalo .

Em Estado Alterado

No nó de evento State Changed conectando-se a um nó Obter Variável

O nó de evento On State Changed é disparado 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, localmente e 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. Em State Change dispara quando qualquer um deles altera seu valor.
  • Em 0, Em 1 e mais nesta sequência: entradas observadas para alterações de estado. Você pode anexar qualquer nó de dados a essas entradas: Obter Variável ou qualquer propriedade de componente (instância ou estática).
  • Out 0, Out 1 e muito 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 componente, 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ó Ao Estado Alterado fica vermelho e o painel Inspetor do Graph 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 do Graph para forçar On State Changed a 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 ele está observando uma entrada a um custo de runtime maior.

Capturas de tela do nó de evento On State Changed conectando-se ao resultado da comparação de um nó Obter Variável com um literal inteiro, permitir 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 que o usuário ignore a caixa de diálogo.

  • Texto: mensagem mostrada na caixa de diálogo. O texto da mensagem será encapsulado por palavras, se necessário.
  • Botões: seleção de botões a serem apresentados 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 em quando ele ignorar a caixa de diálogo selecionando um botão. (Se deixado vazio, 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 definido como resposta do usuário de forma assíncrona quando o usuário selecionar um botão para ignorar a caixa de diálogo. O valor armazenado é o rótulo não dimensionado 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 compartilhado, a resposta do usuário será enviada a todos os clientes na mesma sala e o nó de evento On State Changed disparará em todos os clientes para reagir à resposta do usuário.

Nós de eventos de física

Os nós de evento físico On Trigger Enter, On Trigger Exit, On Collision Enter e On Collision Exit são rede confiável. Por padrão, esses eventos são disparados 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 dispararão de forma confiável em exatamente um cliente. Isso possibilita que os fluxos de script disparados leiam e escrevam de forma confiável o estado compartilhado (por exemplo, atualize uma variável de pontuação compartilhada).

Segurança

A Malha protege os usuários contra cenários de ameaça como estes:

  • Conteúdo de cena comprometido— por exemplo, tentativas mal-intencionadas de acessar dados locais confidenciais.
  • Canal de transporte ou cliente comprometido, por exemplo, tentativas mal-intencionadas de ler ou gravar dados remotos inacessíveis em outros clientes.

Para 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 coletada para validar scripts visuais para limitar o acesso a determinados tipos de componentes do Unity e a um subconjunto seguro de suas propriedades.

No runtime da cena, a Malha limita o acesso a determinadas partes da cena:

  • Localmente: impedindo o acesso a internos de malha 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 no lado do receptor para suas possíveis gravações de cena.

Exemplos:

  • Um script visual local mal-intencionado deseja dar a todos os avatares cabeças bobble. Para isso, ele tenta examinar toda a cena de GameObjects que representam cabeças de avatar. A malha filtra automaticamente os resultados da verificação para excluir o sistema avatar.
  • Um cliente remoto mal-intencionado deseja desfigurar a cena invertendo todos os GameObjects de cabeça para baixo. Para 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 receptor foi projetado para fazer algo assim, o cliente local ignora a entrada remota.