DataModelMesh

Veraltete anzeigen

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

Nicht erstellbar
Nicht durchsuchbar

Das DataModelMesh ist eine abstrakte Klasse, von der Netzwerkklassen abstehen.

Mesh-Klassen sind Objekte, die, wenn sie an BaseParts übergeben werden, das Aussehen des Teils auf das eines vordefinierten Meshes ändern.Beachten Sie, dass sie nur das Aussehen des Teils ändern und nicht die Physik-/Kollisionsgrenzen des Teils.Entwickler, die ein Mesh auf ein Teil anwenden möchten, das die Kollision des Teils ändert, sollten MeshParts verwenden.

Beachten Sie, dass die MeshPart- und CharacterMesh-Klassen nicht von DataModelMesh absteigen.

Zusammenfassung

Eigenschaften

Eigenschaften

Offset

Parallel lesen

Der Versatz eines Meshes bestimmt die Entfernung vom BasePart.Position eines BasePart, das das Netz angezeigt wird.

Wie man Mesh-Versatz verwendet

Die Offset-Eigenschaft ändert die relative Position, in der das Netz gerendert wird.Zum Beispiel verursacht ein Versatz von 0, 5, 0, dass das Netz 5 Stollen über der Position des BasePart angezeigt wird.

Die Position des BasePart bleibt unverändert, was bedeutet, dass die Physik-Kollisionsbox des Teils an derselben Stelle bleibt.Dies wird im Bild unten gezeigt, wo der grüne Umriss (ein SelectionBox ) die Grenzen des BasePart zeigt.

Andere Verwendungen für Mesh-Versatz

Es gibt eine Reihe interessanter Verwendungen für die EigenschaftenOffset des Meshes.

  • Versatz und DataModelMesh.Scale können mit TweenService relativ kostengünstig animiert werden, da die Engine keine Physik-/Kollisionsberechnungen durchführen muss, da der BasePart nicht bewegt wird.
  • Ändern der Beziehung zwischen dem Mesh und seinen Kollisionsgrenzen (bestimmt durch das BasePart )

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

Scale

Parallel lesen

Die Größe eines Netzes bestimmt die Größe des Netzes im Verhältnis zu seinen ursprünglichen Dimensionen.

Wie man Größenverhältnisverwendet

Die Skalierungseigenschaft funktioniert je nach verwendetem Meshtyp etwas unterschiedlich.Beachten Sie die Größe der BasePart bleibt unverändert, was bedeutet, dass die Physik-Kollisionsbox des Teils gleich bleibt.

  • SpecialMesh Objekte mit SpecialMesh.FileType Set auf "FileMesh"-Skalierung in Bezug auf die ursprünglichen Dimensionen des Meshes, als es auf Roblox hochgeladen wurde
  • BlockMesh Objekte oder SpecialMesh Objekte mit SpecialMesh.FileType Skalierung auf "Ziegel", "Keil" oder "Sphäre" im Verhältnis zum BasePart.Size ihres übergeordnetes Teil
  • CylinderMesh Objekte oder SpecialMesh Objekte mit SpecialMesh.FileType Skalierung auf "Zylinder" im Verhältnis zu der BasePart.Size ihres übergeordnetes Teil.Uniform für die Höhenachse der Zylinder und die Aufrechterhaltung eines Verhältnisses von 1:1 für die Länge und Breite des Zylinders, mit dem niedrigsten Wert.
  • SpecialMesh Objekte mit SpecialMesh.FileType werden derzeit auf nicht standardmäßige Weise skaliert.Entwickler sollten sich nicht darauf verlassen, da es Pläne gibt, dieses Verhalten zu ändern.
  • SpecialMesh Objekte mit SpecialMesh.FileType Skalierung auf "Torso" in einer nicht standardmäßigen Weise.Entwickler sollten sich nicht darauf verlassen, da es Pläne gibt, diesen eingebenzu deprecieren.

Mesh-Skalierungsdemonstration

Das oben beschriebene Verhalten kann in den folgenden Demonstrationsbildern gesehen werden.

Lineare Skalierung in Bezug auf die Größe eines Teils für "Ziegel", "Keil" und "Kugel" Meshes.

Lineare Skalierung in Bezug auf das ursprünglich hochgeladene Netz für "FileMesh"-Netze

Nicht-uniforme begrenzte Skalierung für 'Zylinder'-Meshes

Andere Verwendungen für Größenverhältnis

Es gibt eine Reihe interessanter Verwendungen für die EigenschaftenOffset des Meshes.

  • DataModelMesh.Offset und Skalierung können mit TweenService relativ kostengünstig animiert werden, da die Engine keine Physik-/Kollisionsberechnungen durchführen muss, da sich die BasePart nicht ändert.
  • Ändern der Beziehung zwischen dem Mesh und seinen Kollisionsgrenzen (bestimmt durch das BasePart )

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

VertexColor

Parallel lesen

VertexColor bestimmt die Farbänderung des Texture eines FileMesh.Beachten Sie, dass diese Eigenschaft eine Vector3 ist, anstatt eine Color3 ; um zu konvertieren, verwenden Sie die Color3.R , Color3.G und Color3.B Eigenschaften.

Obwohl diese Eigenschaft die grundlegende Änderung einer Textur ermöglicht, bietet die Änderung einer Textur vollständig mehr Kontrolle. Siehe MeshPart für weitere Details.

Methoden

Ereignisse