SpecialMesh
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Przedmiot SpecialMesh zastosowuje siatkę do BasePart w zależności od właściwości MeshType. Dostępne jest wiele opcji.
- Cegła - kształt bloku, równoznaczny z BlockMesh
- FileMesh - Użytkownik wysłał Mesh, równoznaczny z FileMesh, że tekstura może być zastosowana do używania właściwości FileMesh.TextureId
- Głowa - kształt głowy
- Kula - Kształt kuli, podobny do Part z Part.Shape kulą, ale można go swobodnie zmniejszyć na wszystkich osiach
- Kąt śródkościowy - Kształt kąta, identyczny z WedgePart
- Torso - Blok z połóżniczymi stronami, z powodu tego, że jest przestarzały
Uwaga, każdy SpecialMesh.MeshType będzie skalowany inaczej, gdy używa DataModelMesh.Scale, dla więcej informacji na ten temat, zobacz stronę na DataModelMesh.Scale . Obiekt SpecialMesh również wyświetla właściwość 1> Class.DataModelMesh.Offset1>.
Ważne jest, aby pamiętać, że gdy używasz SpecialMesh, tylko wygląd części się zmienia. Modele kolizji części pozostają takie same. Na przykład, postać nie będzie w stanie prawidłowo chodzić po siatce, ponieważ geometria siatki nie jest konto.
SpecialMesh vs MeshPart
Obecnie istnieje dwie sposoby użycia sieci użytkownika stworzonej. Korzystają z SpecialMesh z ustawionym SpecialMesh.FileType na MeshPart lub przez używanie MeshPart. Mimo to na ogół obiekt 1> Class.MeshPart1> przewyższył sieć użytkowników. Niektóre różnice, które nale
- BasePart.Material wyświetla poprawnie na siatce, gdy używasz MeshPart i nie gdy używasz SpecialMesh
- MeshParts włączają w sobie właściwość MeshPart.CollisionFidelity, co oznacza, że model kolizji MeshPart może być ustawiony tak, aby odpowiadał geometrii siatki. Przeciwko temu obiekt SpecialMesh używa modelu kolizji 0> Class.BasePart|BaseParts0>
- Właściwość MeshId Class.SpecialMesh może być zmieniona przez SpecialMesh lub Script podczas uruchomienia. Właściwość 1>Class.MeshPart.MeshId|MeshId1> Class.MeshPart nie może.
Przykłady kodu
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
Podsumowanie
Właściwości
Określa rodzaj siatki, który zostanie zastosowany do BasePart , do którego należy SpecialMesh .
MieszId to ID treści sieci, która ma być wyświetlona.
Texturę ID to ID zawartości tekstury, która zostanie zastosowana do siatki.
Odległość od BasePart.Position klasy BasePart określa pozycję względną od Class.BasePart, w której wyświetlana będzie siatka.
Skala siatki określa rozmiar siatki w stosunku do jej pierwotnych wymiarów.
Zmienia kolor tekstury sieci, używany z FileMesh.TextureId .
Właściwości
MeshType
Mieszka, do której obiekt SpecialMesh stosuje się, zależy od właściwości BasePart. Dostępne jest wiele opcji.
- Cegła - kształt bloku, równoznaczny z BlockMesh
- FileMesh - Użytkownik wysłał Mesh, równoznaczny z FileMesh, że tekstura może być zastosowana do używania właściwości FileMesh.TextureId
- Głowa - kształt głowy
- Kula - Kształt kuli, podobny do Part z Part.Shape kulą, ale można go swobodnie zmniejszyć na wszystkich osiach
- Kąt śródkościowy - Kształt kąta, identyczny z WedgePart
- Torso - Blok z połóżniczymi stronami, z powodu tego, że jest przestarzały
Uwaga, każdy MeshType będzie skalować inaczej, gdy użyjesz DataModelMesh.Scale, dla więcej informacji na ten temat, zobacz stronę na DataModelMesh.Scale.
Przykłady kodu
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