SpecialMesh
*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
- 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>
- 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
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()
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
Determina el tipo de malla que se aplicará a la BasePart la SpecialMesh es padre.
El MeshId es el ID de contenido de la malla que se va a mostrar.
El ID de contenido de TextureId es el ID de contenido de la textura que se aplicará a la malla.
The Offset of a mesh determines the relative position from the BasePart.Position of a BasePart that the mesh will be displayed at.
The Scale of a mesh determines the size of the mesh relative to its original dimensions.
Changes the hue of a mesh's texture, used with FileMesh.TextureId.
Propiedades
MeshType
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
- 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
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