SpecialMesh

Pokaż przestarzałe

*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
  • Cylinder - Cylinder, identyczny z Part z Part.Shape 'Cylinder'
  • 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>
  • Mieszka MeshPart skala na wszystkie osie w zależności od właściwości Size w MeshPart, mieszka 1> SpecialMesh1> nie
  • Obiekt SpecialMesh zawiera właściwości Offset i Scale zamiast właściwości MeshParts, które nie są
  • 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

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()
Mesh VertexColor

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

Właściwości odziedziczeni z: FileMesh
  • MeshId:ContentId
    Odczyt równoległy

    MieszId to ID treści sieci, która ma być wyświetlona.

  • TextureId:ContentId
    Odczyt równoległy

    Texturę ID to ID zawartości tekstury, która zostanie zastosowana do siatki.

Właściwości odziedziczeni z: DataModelMesh

Właściwości

Odczyt równoległy

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
  • Cylinder - Cylinder, identyczny z Part z Part.Shape 'Cylinder'
  • 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

Mesh VertexColor

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

Metody

Zdarzenia