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 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
  • Zylinder - Ein Zylinder, identisch mit einem Part mit einem Part.Shape von 'Cylinder'
  • 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>
  • Das Netz eines MeshPart skaliert auf allen Achsen, abhängig von der Size Eigenschaft des MeshPart, das Netz eines Spezialmeshes nicht
  • Das SpecialMesh-Objekt enthält die Offset und Scale-Eigenschaften, während MeshParts nicht
  • 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

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

Zusammenfassung

Eigenschaften

Eigenschaften von FileMesh übernommen
  • MeshId:ContentId
    Parallel lesen

    Die MeshId ist die Inhalts-ID des Meshes, 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, 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
  • Zylinder - Ein Zylinder, identisch mit einem Part mit einem Part.Shape von 'Cylinder'
  • 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

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