DataModelMesh

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Não navegável

O DataModelMesh é uma classe abstrata a partir da qual as classes de malha descendem.

As classes de malha são objetos que, quando parentadas para BaseParts alteram a aparência da peça para a de uma malha predefinida.Observe, eles só alteram a aparência da peça e não os limites de física/colisão da peça.Desenvolvedores que desejam aplicar uma malha a uma peça que altera a colisão da peça devem usar MeshParts .

Observe que as classes MeshPart e CharacterMesh não descendem do DataModelMesh.

Resumo

Propriedades

Propriedades

Offset

Ler Parallel

O deslocamento de uma malha determina a distância a partir do BasePart.Position de uma BasePart que a malha será exibida.

Como usar o deslocamento de malha

A propriedade Offset altera a posição relativa em que o mesh será renderizado.Por exemplo, um deslocamento de 0, 5, 0 fará com que a malha seja exibida a 5 metros acima da posição do BasePart.

A posição do BasePart permanece inalterada, o que significa que a caixa de colisão física da peça permanecerá no mesmo local.Isso é demonstrado na imagem abaixo, onde o contorno verde (um SelectionBox ) mostra as extremidades do BasePart .

Outros usos para deslocamento de malha

Há uma série de usos interessantes para a propriedade de deslocamento de malha.

  • Deslocamento e DataModelMesh.Scale podem ser animados usando TweenService relativamente barato, pois o motor não precisa fazer nenhum cálculo de física/colisão, pois o BasePart não é movido.
  • Mudando a relação entre a malha e seus extremos de colisão (determinados pelo BasePart )

Amostras de código

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()

Scale

Ler Parallel

A escala de um mesh determina o tamanho do mesh em relação às suas dimensões originais.

Como usar a dimensionar/escalonarde malha

A propriedade de escala funciona de forma ligeiramente diferente dependendo do tipo de malha que está sendo usada.Observe que o tamanho do BasePart permanece inalterado, o que significa que a caixa de colisão física da peça permanecerá a mesma.

  • SpecialMesh objetos com SpecialMesh.FileType setados para escala 'FileMesh' em relação às dimensões originais da malha quando foi carregada no Roblox
  • BlockMesh objetos ou SpecialMesh objetos com SpecialMesh.FileType definidos para escala 'Tijolo', 'Cunha' ou 'Esfera' uniformemente em relação ao BasePart.Size de seu pai
  • CylinderMesh objetos ou SpecialMesh objetos com SpecialMesh.FileType definido para escala 'Cilindro' em relação ao BasePart.Size de seu pai.Uniformemente para o eixo de altura dos cilindros e mantendo uma proporção de 1:1 para o comprimento e a largura do cilindro, usando o menor valor.
  • SpecialMesh objetos com SpecialMesh.FileType definidos como 'Cabeça' atualmente escalam de maneira não padrão.Desenvolvedores não devem confiar nisso, pois há planos para alterar esse comportamento.
  • SpecialMesh objetos com SpecialMesh.FileType definidos para escala 'Torso' de maneira não padrão.Desenvolvedores não devem confiar nisso, pois há planos para depreciar esse digitarde malha.

Demonstração de escala de malha

O comportamento acima pode ser visto nas seguintes imagens de demonstração.

Escala linear em relação ao tamanho da peça para malhas 'Tijolo', 'Fatia' e 'Esfera'.

Escala linear em relação ao mesh original carregado para malhas 'FileMesh'

Escalação não uniforme restrita para malhas de 'Cilindro'

Outros usos para dimensionar/escalonarde malha

Há uma série de usos interessantes para a propriedade de deslocamento de malha.

  • DataModelMesh.Offset e Escala podem ser animados usando TweenService relativamente barato, pois o motor não precisa fazer nenhum cálculo de física/colisão, pois o BasePart não é alterado.
  • Mudando a relação entre a malha e seus extremos de colisão (determinados pelo BasePart )

Amostras de código

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()

VertexColor

Ler Parallel

Cor do vértice determina a mudança de tom do Texture de um FileMesh .Observe que esta propriedade é um Vector3 em vez de um Color3 ; para converter, use as propriedades Color3.R, Color3.G e Color3.B.

Embora esta propriedade permita a modificação básica de uma textura, mudar uma textura inteira fornece mais controle. Veja MeshPart para mais detalhes.

Métodos

Eventos