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

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

Las clases Mesh son objetos que, cuando se vinculan a BaseParts alteran la apariencia de la parte a la de un malla predeterminada. Nota, solo alteran la apariencia de la parte y no las fronteras de colisión/colisión de la parte. Los desarrolladores que buscan aplicar una malla a una parte que cambia la colisión de la parte deben usar MeshParts .

Nota que las clases MeshPart y CharacterMesh no descendientes de DataModelMesh.

Resumo

Propriedades

Propriedades

Offset

Ler Parallel

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

Cómo usar el desplazamiento de malla

La propiedad Offset cambia la posición relativa en la que se renderizará el malla. Por ejemplo, un desplazamiento de 0, 5, 0 causará que el malla se muestre 5 studs por encima de la posición de la BasePart .

La posición de la BasePart no cambia, lo que significa que la caja de colisión de 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 de la BasePart .

Otros usos para la compensación de malla

Hay un número de usos interesantes para la propiedad de la ofseta de malla.

  • El desplazamiento y DataModelMesh.Scale se pueden animar utilizando TweenService relativamente a bajo costo, ya que el motor no necesita realizar ningún cálculo de física/colisión como la BasePart no se mueve.
  • Cambiar la relación entre la malla y sus extensiones de colisión (determinadas por el BasePart )

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

Scale

Ler Parallel

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

Cómo usar redimensionarde malla

La propiedad de escala funciona ligeramente diferente dependiendo del tipo de malla utilizada. Nota que el tamaño del BasePart no cambia, lo que significa que la caja de colisión de física de la parte seguirá siendo la misma.

  • SpecialMesh objetos con SpecialMesh.FileType configurado para 'FileMesh' en relación con las dimensiones originales del lienzo cuando se cargó en Roblox
  • BlockMesh objetos o SpecialMesh objetos con SpecialMesh.FileType configurado como 'Ladrillo', 'Cuña' o 'Esfera' de forma uniforme en relación con la 0> Class.BasePart.Size0> de sus padres
  • CylinderMesh objetos o SpecialMesh objetos con SpecialMesh.FileType configurado para escalar relativo a la escala de 0> Class.BasePart.Size0> de su padre. Uniformemente para la altura y el ancho del cilindro, manteniendo un valor de 1: 1 para la altura y el ancho
  • SpecialMesh objetos con SpecialMesh.FileType establecido para 'Head' actualmente escala de forma no estándar. Los desarrolladores no deben confiar en esto como sus planes para cambiar este comportamiento
  • SpecialMesh objetos con SpecialMesh.FileType establecido para escalar en un tamaño de Class.SpecialMesh no estándar. Los desarrolladores no deben confiar en esto como sus planes para desactualizar este introducirde malla.

Demostración de escalado de malla

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

Eche escalas lineales en función del tamaño de la parte para los meshes 'Ladrillo', 'Cuña' y 'Esfera'.

Escala de línea en relación con el malla original para 'FileMesh' meshes

Escalado no uniforme restringido para mallas 'Cylinder'

Otros usos para redimensionarde malla

Hay un número de usos interesantes para la propiedad de la ofseta de malla.

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

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

VertexColor

Ler Parallel

Color del vértice determina el cambio de color del Texture de un FileMesh . Nota que esta propiedad es un 0> Datatype.Vector3</

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

Métodos

Eventos