SpecialMesh

Mostrar obsoleto

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

O objeto SpecialMesh aplica uma malha a um BasePart dependendo da propriedade MeshType. Várias opções estão disponíveis.

  • Tijolo - Uma forma de bloco, equivalente a um BlockMesh
  • Cilindro - Um cilindro, idêntico a um com um de 'Cilindro'
  • FileMesh - Um usuário carregou Mesh, equivalente a FileMesh que uma textura pode ser aplicada usando a propriedade FileMesh.TextureId
  • Cabeça - Uma forma de cabeça de personagem
  • Esfera - Uma forma de esfera, semelhante a uma Part com um Part.Shape de 'Bola', mas pode ser redimensionada livremente em todos os eixos
  • Cunha - Uma forma de cunha, idêntica a uma WedgePart
  • Torso - Um bloco com lados inclinados, devido a ser descontinuar

Observe, cada SpecialMesh.MeshType vai escalar de forma diferente ao usar DataModelMesh.Scale, para mais informações sobre isso, consulte a página em DataModelMesh.Scale.O objeto SpecialMesh também expõe a propriedade DataModelMesh.Offset.

É importante lembrar que, ao usar uma SpecialMesh, apenas a aparência de uma parte muda.O modelo de colisão da peça permanece o mesmo.Por exemplo, um personagem não será capaz de caminhar corretamente sobre uma malha pois a geometria da malha não é levada em conta.

SpecialMesh vs MeshPart

Existem atualmente duas maneiras de usar um malhacriado por um desenvolvedor.Eles estão usando uma SpecialMesh com o set para 'FileMesh', ou usando um set.Embora, no geral, o objeto MeshPart tenha ultrapassado o SpecialMesh, há algumas diferenças que os desenvolvedores devem estar cientes.

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()

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

Resumo

Propriedades

Propriedades herdados de FileMesh
  • MeshId:ContentId
    Ler Parallel

    O MeshId é o ID de conteúdo do mesh que deve ser exibido.

  • TextureId:ContentId
    Ler Parallel

    O TextureId é o ID de conteúdo da textura que deve ser aplicada à malha.

Propriedades herdados de DataModelMesh

Propriedades

Ler Parallel

A malha que o objeto SpecialMesh aplica ao BasePart depende da propriedade MeshType. Número de opções disponíveis.

  • Tijolo - Uma forma de bloco, equivalente a um BlockMesh
  • Cilindro - Um cilindro, idêntico a um com um de 'Cilindro'
  • FileMesh - Um usuário carregou Mesh, equivalente a FileMesh que uma textura pode ser aplicada usando a propriedade FileMesh.TextureId
  • Cabeça - Uma forma de cabeça de personagem
  • Esfera - Uma forma de esfera, semelhante a uma Part com um Part.Shape de 'Bola', mas pode ser redimensionada livremente em todos os eixos
  • Cunha - Uma forma de cunha, idêntica a uma WedgePart
  • Torso - Um bloco com lados inclinados, devido a ser descontinuar

Observe, cada Tipo de Modelo escalará de forma diferente ao usar DataModelMesh.Scale, para mais informações sobre isso, consulte a página em DataModelMesh.Scale.

Amostras de código

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

Métodos

Eventos