Referência do nó Mesh Visual Scripting
Ir para o artigo de visão geral do Visual Scripting
No intervalo
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 diferentes nós No Intervalo .
Sobre o estado alterado
O nó do 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. On State Change é 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 estas 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, o 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 de forma eficiente e, portanto, está desabilitada:
Nesse caso, você pode selecionar Permitir sondagem no painel Inspetor de gráfico para forçar No estado alterado para detetar 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.
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 texto, 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 é descartada.)
- Target: 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 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:
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 de 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 acionados 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 determinadas partes da cena:
- Localmente: impedindo o acesso a internos do Mesh e outros dados confidenciais.
- Remotamente: verificando se o autor da cena pretende que essa parte da cena seja modificada. Isso é feito através da análise estática de scripts visuais do lado do recetor para suas possíveis gravações de cena.
Exemplos:
- Um script visual local malicioso quer dar cabeças de bobble a todos os avatares. 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 verificação para excluir o sistema de avatar.
- Um cliente remoto mal-intencionado quer desfigurar a cena virando 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 recetor é projetado para fazer algo assim, o cliente local ignora a entrada remota.