processLineAgainstMesh
Traça uma linha contra a malha de um elemento específico e devolve o ponto exato do triângulo atingido.
Sintaxe
Seção intitulada “Sintaxe”bool, number, number, string, string, number, number, number processLineAgainstMesh ( element oElemento, number inicioX, number inicioY, number inicioZ, number fimX, number fimY, number fimZ )Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Descrição |
|---|---|---|
oElemento | element | Elemento cuja malha será testada. |
inicioX, inicioY, inicioZ | number | Ponto de partida da linha. |
fimX, fimY, fimZ | number | Ponto final da linha. |
Retorno
Seção intitulada “Retorno”false quando não há acerto. Quando há, devolve oito valores:
| Posição | Descrição |
|---|---|
| 1 | true. |
| 2, 3 | Coordenadas U e V dentro da textura. |
| 4 | Nome da textura, ou nil se não tiver nome. |
| 5 | Nome do frame, ou nil se não tiver nome. |
| 6, 7, 8 | Posição do impacto sobre a malha. |
Um elemento que ainda não foi carregado na área do jogador simplesmente não acerta: o retorno é false, sem aviso. Os argumentos são conferidos de forma estrita: algo que não seja um elemento válido no primeiro argumento, ou uma coordenada que não seja número (ou seja NaN ou infinita), gera um erro de Lua.
Exemplo
Seção intitulada “Exemplo”local acertou, u, v, textura = processLineAgainstMesh(alvo, cx, cy, cz, px, py, pz)if acertou and textura then outputDebugString("textura atingida: " .. textura)endVeja também
Seção intitulada “Veja também”processLineOfSight— Traça uma linha entre dois pontos e descreve o primeiro obstáculo encontrado.isLineOfSightClear— Responde apenas se existe caminho livre entre dois pontos, sem descrever o obstáculo.testSphereAgainstWorld— Testa uma esfera contra o mundo e descreve o que ela encostou.getGroundPosition— Devolve a altura do chão logo abaixo de um ponto.getRoofPosition— Devolve a altura do teto logo acima de um ponto.