DataModelMesh

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í.

No creable
No explorable

El DataModelMesh es una clase abstracta de la cual descendan las clases de malla.

Las clases de malla son objetos que, cuando se padrinan a BaseParts cambian la apariencia de la parte a la de una malla predefinida.Tenga en cuenta que solo modifican la apariencia de la parte y no los límites de física/colisión de la parte.Los desarrolladores que buscan aplicar un malla a una parte que cambia la colisión de la parte deberían usar MeshParts .

Tenga en cuenta que las clases MeshPart y CharacterMesh no descienden de DataModelMesh.

Resumen

Propiedades

Propiedades

Offset

Leer paralelo

El desplazamiento de una malla determina la distancia desde el BasePart.Position de una BasePart que la malla se mostrará.

Cómo usar el desplazamiento de malla

La propiedad de desplazamiento cambia la posición relativa en la que se renderizará el modelo.Por ejemplo, un desplazamiento de 0, 5, 0 hará que la malla se muestre a 5 tachuelas por encima de la posición del BasePart .

La posición del BasePart permanece sin cambios, lo que significa que la caja de colisión física de la parte permanecerá en la misma ubicación.Esto se demuestra en la imagen a continuación, donde el contorno verde (un SelectionBox ) muestra los límites del BasePart .

Otros usos para desplazamiento de malla

Hay una serie de usos interesantes para la propiedad de desplazamiento de malla.

  • La desviación y DataModelMesh.Scale se pueden animar utilizando TweenService relativamente baratos ya que el motor no necesita realizar ningún cálculo de física/colisión ya que el BasePart no se mueve.
  • Cambiar la relación entre la malla y sus extensiones de colisión (determinada por el BasePart )

Muestras 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

Leer paralelo

La escala de un malla determina el tamaño de la malla en relación con sus dimensiones originales.

Cómo usar la redimensionarde malla

La propiedad de escala funciona de manera ligeramente diferente dependiendo del tipo de malla que se use.Observe el tamaño de la BasePart permanece sin cambios, lo que significa que la caja de colisión física de la parte permanecerá igual.

  • SpecialMesh objetos con SpecialMesh.FileType establecido a la escala 'FileMesh' relativa a las dimensiones originales de la malla cuando se subió a Roblox
  • BlockMesh objetos o SpecialMesh objetos con SpecialMesh.FileType establecido a 'Brick', 'Wedge' o 'Sphere' escala uniformemente relativa al BasePart.Size de su padre
  • CylinderMesh objetos o SpecialMesh objetos con SpecialMesh.FileType escala establecida a 'Cilindro' relativa al BasePart.Size de su padre.Uniformemente para el eje de altura de los cilindros y manteniendo una proporción de 1:1 para la longitud y el ancho del cilindro, usando el valor más bajo.
  • SpecialMesh objetos con SpecialMesh.FileType establecido a 'Cabeza' actualmente se escalan de manera no estándar.Los desarrolladores no deben confiar en esto ya que hay planes para cambiar este comportamiento.
  • SpecialMesh objetos con SpecialMesh.FileType establecido a escala de 'Torso' de manera no estándar.Los desarrolladores no deben confiar en esto ya que hay planes para depreciar este introducirde malla.

Demostración de escalado de malla

El comportamiento anterior se puede ver en las siguientes imágenes de demostración.

Escalado lineal relativo al tamaño de la pieza para mallas de 'Ladrillo', 'Esquina' y 'Esfera'.

Escalado lineal en relación con el modelo original subido para las mallas 'FileMesh'

Escalado no uniforme restringido para mallas de 'Cilindro'

Otros usos para la escala de redimensionar

Hay una serie de usos interesantes para la propiedad de desplazamiento de malla.

  • DataModelMesh.Offset y Escala se pueden animar utilizando TweenService relativamente barato ya que el motor no necesita realizar ningún cálculo de física/colisión ya que el BasePart no cambia.
  • Cambiar la relación entre la malla y sus extensiones de colisión (determinada por el BasePart )

Muestras 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

Leer paralelo

El color del vértice determina el cambio de tono del Texture de un FileMesh .Tenga en cuenta que esta propiedad es un Vector3 en lugar de un Color3 ; para convertir, use las propiedades Color3.R, Color3.G y Color3.B.

Aunque esta propiedad permite la modificación básica de una textura, cambiar una textura por completo proporciona más control. Vea MeshPart para más detalles.

Métodos

Eventos