SpecialMesh

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El objeto SpecialMesh aplica un malla a un BasePart dependiendo del propietario de la propiedad MeshType. Hay una serie de opciones disponibles.

  • Ladrillo - Un bloque de forma, equivalente a un BlockMesh
  • Cylinder - Un cilindro, idéntico a un Part con un Part.Shape de 'Cylinder'
  • FileMesh - Un usuario subió Mesh, que es equivalente a FileMesh que una textura se puede aplicar para usar la propiedad FileMesh.TextureId
  • Cabeza - Un tamaño de cabeza de personaje
  • Esfera - Un tipo de esfera, similar a un Part con un Part.Shape de 'Ball' pero puede ser reubicado libremente en todos los ejes
  • Cuña - Un tipo de cuña, idéntico a un WedgePart
  • Torso - Un bloque con lados inclinados, debido a ser desusar, en desuso (noun)

Nota, cada SpecialMesh.MeshType escalará de manera diferente cuando se utiliza DataModelMesh.Scale, para obtener más información al respecto, consulte la página en DataModelMesh.Scale. El objeto SpecialMesh también expone la propiedad 1> Class.DataModelMesh.Offset1>.

Es importante recordar que cuando se utiliza un SpecialMesh, solo cambia la apariencia de una parte. El modelo de colisión de la parte se mantiene el mismo. Por ejemplo, un personaje no podrá caminar correctamente sobre un mesa porque la geometría del mesa no se tiene en cuenta.

SpecialMesh vs MeshPart

Actualmente hay dos formas de usar un malla creada por un desarrollador. Están usando un SpecialMesh con el SpecialMesh.FileType establecido a 'FileMesh', o usando un MeshPart . Sin embargo, en general, el objeto MeshPart ha superado el SpecialMesh hay algunas diferencias los desarrolladores deberían estar conscientes.

  • BasePart.Material muestra correctamente en el malla al usar un MeshPart y no al usar un SpecialMesh
  • Class.MeshPart|MeshParts incluye la propiedad MeshPart.CollisionFidelity, lo que significa que el modelo de colisión de un MeshPart puede establecerse para que se asemeje a la geometría del malla. El objeto especial 0> Class.Mesh por contraste, usa el aplicación de modeladode colisión de padre MeshParts3>
  • El malla de un MeshPart escala en todos los ejes dependiendo de la propiedad Size de la MeshPart , la malla de un SpecialMesh no
  • El objeto SpecialMesh incluye las propiedades Offset y Scale mientras que MeshParts no
  • La propiedad MeshId de un SpecialMesh puede cambiarse por un Script o 1>Class.LocalScript1> durante el tiempo de ejecución. La propiedad 4>Class.MeshPart.MeshId|MeshId4> de un 7>Class.MeshPart7> no puede

Muestras de código

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

Resumen

Propiedades

Propiedades heredados de FileMesh
  • MeshId:ContentId
    Leer paralelo

    El MeshId es el ID de contenido de la malla que se va a mostrar.

  • TextureId:ContentId
    Leer paralelo

    El ID de contenido de TextureId es el ID de contenido de la textura que se aplicará a la malla.

Propiedades heredados de DataModelMesh

Propiedades

Leer paralelo

El malla que el objeto SpecialMesh aplica a la BasePart depende de la propiedad MeshType. Hay una serie de opciones disponibles.

  • Ladrillo - Un bloque de forma, equivalente a un BlockMesh
  • Cylinder - Un cilindro, idéntico a un Part con un Part.Shape de 'Cylinder'
  • FileMesh - Un usuario subió Mesh, que es equivalente a FileMesh que una textura se puede aplicar para usar la propiedad FileMesh.TextureId
  • Cabeza - Un tamaño de cabeza de personaje
  • Esfera - Un tipo de esfera, similar a un Part con un Part.Shape de 'Ball' pero puede ser reubicado libremente en todos los ejes
  • Cuña - Un tipo de cuña, idéntico a un WedgePart
  • Torso - Un bloque con lados inclinados, debido a ser desusar, en desuso (noun)

Nota, cada MeshType escalará de manera diferente cuando se use DataModelMesh.Scale , para obtener más información al respecto, consulte la página en DataModelMesh.Scale .

Muestras de código

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