SpecialMesh

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das SpecialMesh Objekt wendet ein Mesh auf ein BasePart an, abhängig von der MeshType Eigenschaften. Eine Reihe von Optionen ist verfügbar.

  • Ziegel - Eine Blockform, gleich einer BlockMesh
  • Zylinder - Ein Zylinder, identisch mit einem Part mit einem Part.Shape von 'Zylinder'
  • FileMesh - Ein Benutzer hat ein Mesh hochgeladen, das dem entspricht FileMesh, das eine Textur mit der EigenschaftenFileMesh.TextureId angewendet werden kann
  • Kopf - Eine Kopfform von Charakteren
  • Kugel - Eine Kugelform, ähnlich einer Part mit einem Part.Shape von 'Ball', kann aber auf allen Achsen frei skaliert werden
  • Keil - Ein Keilform, identisch mit einem WedgePart
  • Torso - Ein Block mit schrägen Seiten, der veraltet werden soll

Beachten Sie, jede SpecialMesh.MeshType wird sich unterschiedlich skalieren, wenn Sie DataModelMesh.Scale verwenden, für weitere Informationen zu diesem sehen Sie die Seite auf DataModelMesh.Scale.Das SpecialMesh-Objekt legt auch die DataModelMesh.Offset Eigenschaftenfrei.

Es ist wichtig zu bedenken, dass sich beim Einsatz eines Spezialgitternetzes nur das Aussehen eines Teils ändert.Das Kollisionsmodell des Teils bleibt gleich.Zum Beispiel wird ein Charakter nicht in der Lage sein, über ein Netz richtig zu gehen, da die Netzgeometrie nicht Kontowird.

Spezialmeshes vs MeshPart

Es gibt derzeit zwei Möglichkeiten, ein von einem Entwickler erstelltes Netz zu verwenden.Sie verwenden ein Spezialnetz mit dem SpecialMesh.FileType -Set auf 'FileMesh' oder durch die Verwendung eines MeshPart.Obwohl das Gesamtobjekt MeshPart im Großen und Ganzen das Spezialmesch überschritten hat, gibt es einige Unterschiede, die Entwickler kennen sollten.

Code-Beispiele

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

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

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Zusammenfassung

Eigenschaften

Eigenschaften von FileMesh übernommen
  • MeshId:ContentId
    Parallel lesen

    Die MeshId ist die Inhalts-ID des Mesh, das angezeigt werden soll.

  • TextureId:ContentId
    Parallel lesen

    Die TextureId ist die Inhalts-ID der Textur, die auf das Meshangewendet werden soll.

Eigenschaften von DataModelMesh übernommen

Eigenschaften

Parallel lesen

Das Mesh, auf das sich das -Objekt bezieht, hängt von der Eigenschaftenab. Es stehen eine Reihe von Optionen zur Verfügung.

  • Ziegel - Eine Blockform, gleich einer BlockMesh
  • Zylinder - Ein Zylinder, identisch mit einem Part mit einem Part.Shape von 'Zylinder'
  • FileMesh - Ein Benutzer hat ein Mesh hochgeladen, das dem entspricht FileMesh, das eine Textur mit der EigenschaftenFileMesh.TextureId angewendet werden kann
  • Kopf - Eine Kopfform von Charakteren
  • Kugel - Eine Kugelform, ähnlich einer Part mit einem Part.Shape von 'Ball', kann aber auf allen Achsen frei skaliert werden
  • Keil - Ein Keilform, identisch mit einem WedgePart
  • Torso - Ein Block mit schrägen Seiten, der veraltet werden soll

Beachten Sie, dass sich jeder MeshType unterschiedlich skaliert, wenn Sie DataModelMesh.Scale verwenden, für weitere Informationen zu diesem sehen Sie die Seite auf DataModelMesh.Scale .

Code-Beispiele

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Methoden

Ereignisse