SpecialMesh
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Das SpecialMesh-Objekt gilt ein Mesh auf ein BasePart anhand der Eigenschaft MeshType. Eine Reihe von Optionen ist verfügbar.
- Ziegelstein - Ein Block-Formular, das einem BlockMesh ähnelt
- FileMesh - Ein Benutzer hat Mesh hochgeladen, der entspricht FileMesh, dass eine Textur auf die Anwendung der FileMesh.TextureId Eigenschaften
- Kopf - Ein Charakterkopf-Shaped
- Kugel - Eine Kugelform, ähnlich einer Part mit einem Part.Shape von 'Ball' aber kann frei auf allen Achsen skaliert werden
- Keil - Keilform, identisch mit einem WedgePart
- Torso - Ein Block mit schrägen Seiten, aufgrund der als veraltet kennzeichnen / nicht mehr unterstützen
Beachten Sie, dass jedes SpecialMesh.MeshType , wenn Sie DataModelMesh.Scale verwenden, unterschiedlich skaliert, für weitere Informationen, besuchen Sie die Seite auf DataModelMesh.Scale. Das Objekt SpecialMesh gibt auch die 2>Class.DataModelMesh.Offset2> Eigenschaftenfrei.
Es ist wichtig zu wissen, dass, wenn Sie ein SpecialMesh verwenden, nur die Ästhetik eines Teils geändert wird. Das Kollisionsmodell des Teils bleibt dieselbe. Zum Beispiel wird ein Charakter nicht in der Lage sein, richtig über ein Netz zu gehen, da die Netzgeometrie nicht Kontowird.
SpecialMesh vs MeshPart
Es gibt derzeit zwei Möglichkeiten, ein entwickeltes Mesh zu verwenden. Sie verwenden ein SpecialMesh mit dem SpecialMesh.FileType setzen auf 'FileMesh', oder indem Sie ein MeshPart verwenden. Obwohl, auf der gesamten Linie, das MeshPart Objekt über dem SpecialMesh einige Unterschiede zu beachten gilt, gibt es einige Dinge, die Entwickler berücksichtigen soll
- BasePart.Material wird auf dem Netzwerk korrekt angezeigt, wenn ein MeshPart verwendet wird, und nicht, wenn ein Spezialmesch verwendet wird
- MeshParts enthalten die MeshPart.CollisionFidelity Eigenschaften, was bedeutet, dass das Kollisionsmodell eines MeshPart ähnlich der Geometrie des Meshs sein kann. Das SpecialMesh-Objekt im Gegensatz verwendet das Eltern-Kollisionsmodell 0>Class.BasePart|BaseParts0>
- Die MeshId Eigenschaft eines SpecialMesh kann durch ein Script oder 1> Class.LocalScript1> während der Laufzeit geändert werden. Die 4> Class.MeshPart.MeshId|MeshId4> Eigenschaft eines 7> Class.MeshPart</
Code-Beispiele
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
Zusammenfassung
Eigenschaften
Bestimmt den Typ des Meshes, der auf das BasePart angewendet wird, zu dem das SpecialMesh gehört.
Die MeshId ist die Inhalts-ID des Meshes, das angezeigt werden soll.
Die TextureId ist die Inhalts-ID der Textur, die auf das Meshangewendet werden soll.
Der Offset eines Meshes bestimmt die relative Position von der BasePart.Position eines BasePart, an der das Meshes angezeigt werden soll.
Die Skala eines Meshes bestimmt die Größe des Meshes in Bezug auf seine ursprünglichen Dimensionen.
Ändert die Helligkeit einer Textur, die mit FileMesh.TextureId verwendet wird.
Eigenschaften
MeshType
Das Mesh, das das SpecialMesh -Objekt anwendet, hängt von der Eigenschaftenab. Eine Reihe von Optionen sind verfügbar.
- Ziegelstein - Ein Block-Formular, das einem BlockMesh ähnelt
- FileMesh - Ein Benutzer hat Mesh hochgeladen, der entspricht FileMesh, dass eine Textur auf die Anwendung der FileMesh.TextureId Eigenschaften
- Kopf - Ein Charakterkopf-Shaped
- Kugel - Eine Kugelform, ähnlich einer Part mit einem Part.Shape von 'Ball' aber kann frei auf allen Achsen skaliert werden
- Keil - Keilform, identisch mit einem WedgePart
- Torso - Ein Block mit schrägen Seiten, aufgrund der als veraltet kennzeichnen / nicht mehr unterstützen
Beachten Sie, dass jedes MeshType, wenn Sie DataModelMesh.Scale verwenden, unterschiedlich skaliert, für weitere Informationen darüber, siehe die Seite auf DataModelMesh.Scale.
Code-Beispiele
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