SpecialMesh
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
L'objet SpecialMesh applique un maillage à un BasePart en fonction de la propriété MeshType. Un certain nombre d'options sont disponibles.
- Brique - Un forme de bloc, équivalent à un BlockMesh
- FileMesh - Un utilisateur a téléchargé Mesh, équivalent à FileMesh que une texture peut être appliquée à l'aide de la propriété FileMesh.TextureId
- Tête - Forme de tête d'un personnage
- Sphère - Une forme de sphère, similaire à un Part avec un Part.Shape de « Ball » mais peut être réduite librement sur tous les axes
- Cale de wedge - Une forme de cale, identique à une WedgePart
- Torso - Un bloc avec des côtés inclinés, à cause d'être marquer comme obsolète
Remarquez que chaque SpecialMesh.MeshType sera mis à l'échelle différemment lors de l'utilisation de DataModelMesh.Scale, pour plus d'informations sur ceci, veuillez consulter la page sur DataModelMesh.Scale. L'objet SpecialMesh expose également la propriété 1> Class.DataModelMesh.Offset1>.
Il est important de se souvenir que lors de l'utilisation d'un SpecialMesh, seule l'apparence d'une partie change. Le modèle de collision de la partie reste le même. Par exemple, un personnage ne pourra pas marcher correctement sur un maillage car la géométrie du maillage n'est pas prise en compte.
SpecialMesh vs MeshPart
Il y a actuellement deux façons d'utiliser un maillage créé par un développeur. Ils utilisent un maillage spécial avec le SpecialMesh.FileType défini sur « FileMesh », ou en utilisant un MeshPart . Bien que, dans l'ensemble, l'objet MeshPart ait dépassé le maillage spécial, il y a quelques différences que les développeurs dev
- BasePart.Material affiche correctement sur le maillage lors de l'utilisation d'un MeshPart et non lors de l'utilisation d'un SpecialMesh
- MeshParts inclut la propriété MeshPart.CollisionFidelity, ce qui signifie que le modèle de collision d'un MeshPart peut être réglé pour ressembler à la géométrie du maillage. L'objet SpecialMesh, d'un autre côté, utilise le modèle de collision parent 0> Class.BasePart|BasePartsmodèlisation
- La propriété MeshId d'un SpecialMesh peut être modifiée par un Script ou 1>Class.LocalScript1> pendant l'temps d'exécution. La propriété 4>Class.MeshPart.MeshId|MeshId4> d'un 7>Class.MeshPart7> ne peut pas être modifi
Échantillons de code
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
Résumé
Propriétés
Détermine le type de maillage qui sera appliqué à la BasePart le SpecialMesh est parenté.
Le MeshId est l'ID de contenu du maillage qui est à afficher.
Le TextureId est l'ID de contenu de la texture qui est à appliquer sur le maillage.
L'Offset d'un maillage détermine la position relative par rapport à la BasePart.Position d'un maillage que le maillage sera affiché à.
La taille d'une maillage détermine la taille de la maillage par rapport à ses dimensions d'origine.
Change la couleur d'une texture de maillage, utilisée avec FileMesh.TextureId .
Propriétés
MeshType
Le maillage que l'objet SpecialMesh applique à l'objet BasePart dépend de la propriété MeshType. Un certain nombre d'options sont disponibles.
- Brique - Un forme de bloc, équivalent à un BlockMesh
- FileMesh - Un utilisateur a téléchargé Mesh, équivalent à FileMesh que une texture peut être appliquée à l'aide de la propriété FileMesh.TextureId
- Tête - Forme de tête d'un personnage
- Sphère - Une forme de sphère, similaire à un Part avec un Part.Shape de « Ball » mais peut être réduite librement sur tous les axes
- Cale de wedge - Une forme de cale, identique à une WedgePart
- Torso - Un bloc avec des côtés inclinés, à cause d'être marquer comme obsolète
Remarquez que chaque MeshType sera adapté différemment lors de l'utilisation de DataModelMesh.Scale, pour plus d'informations sur ceci, veuillez consulter la page sur DataModelMesh.Scale.
Échantillons de code
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