SpecialMesh
*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
- 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.
- BasePart.Material Zeigt korrekt auf dem Mesh an, wenn ein MeshPart verwendet wird, und nicht, wenn ein Spezialmesch verwendet wird
- MeshParts enthält die MeshPart.CollisionFidelity Eigenschaften, d. h. das Kollisionsmodell eines MeshPart kann so eingestellt werden, dass es der Geometrie des Meshes ähnelt.Das SpecialMesh-Objekt hingegen verwendet das ModellBaseParts
- Die Eigenschaft MeshId eines SpecialMesh kann während der Laufzeit durch eine Script oder LocalScript geändert werden.Die MeshId Eigenschaft eines MeshPart kann nicht.
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.
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.
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
Bestimmt die Art von Mesh, die auf die BasePart angewendet wird, der die SpecialMesh zugewiesen ist.
Die MeshId ist die Inhalts-ID des Mesh, das angezeigt werden soll.
Die TextureId ist die Inhalts-ID der Textur, die auf das Meshangewendet werden soll.
Der Versatz eines Meshes bestimmt die relative Position aus dem BasePart.Position eines BasePart, an dem das Netz angezeigt wird.
Die Größe eines Netzes bestimmt die Größe des Netzes im Verhältnis zu seinen ursprünglichen Dimensionen.
Ändert den Farbton der Textur eines Meshes, wird mit FileMesh.TextureId verwendet.
Eigenschaften
MeshType
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
- 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.
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