SpecialMesh
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
Amostras 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
Resumo
Propriedades
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.
El Offset de una malla determina la posición relativa desde el BasePart.Position de un BasePart que la malla se mostrará en.
La escala de una malla determina el tamaño de la malla en relación con sus dimensiones originales.
Cambia el color de la textura de una malla, usado con FileMesh.TextureId .
Propriedades
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 .
Amostras 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