DataModelMesh
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die DataModelMesh ist eine abstrakte Klasse, von der Mesh-Klassen abgeleitet werden.
Mesh-Klassen sind Objekte, die, wenn sie in BaseParts mit dem Ändern des Aussehens des Teils auf das eines vordefinierten Mesh ändern, das Aussehen des Teils ändern. Beachten Sie, dass sie nur das Aussehen des Teils ändern und nicht die Physik/Kollisionsgrenzen des Teils. Entwickler, die versuchen, ein Mesh auf ein Teil anzuwenden, das das Kollisionsverhalten ändert,
Beachten Sie die MeshPart und CharacterMesh Klassen, die nicht von DataModelMesh abstammen.
Zusammenfassung
Eigenschaften
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
Offset
Der Offset eines Meshes bestimmt die Entfernung von der BasePart.Position eines BasePart, der das Meshen anzeigt.
Wie verwende ich Versatz
Die Offset-Eigenschaft ändert die relative Position, an der die Mesh rendert wird. Zum Beispiel verursacht ein Offset von 0, 5, 0, dass die Mesh 5 Stunden über der Position des BasePart angezeigt wird.
Die Position der BasePart bleibt unverändert, was bedeutet, dass die Physik-Kollisionskiste der partei in derselben Position bleibt. Dies wird in dem Bild unten gezeigt, in dem der grüne Umriss (ein SelectionBox ) die Ausmaße der BasePart zeigt.
Andere Verwendung für Versatz
Es gibt eine Reihe von interessanten Anwendungen für die Eigenschaften.
- Offset und DataModelMesh.Scale können mit TweenService relativ billig animiert werden, da der Motor keine Physik/Kollision-Berechnungen vornehmen muss, da die BasePart nicht bewegt wird.
- Ändern der Beziehung zwischen dem Mesh und seinem Kollisionsbereich (bestimmt durch das BasePart )
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()
Scale
Die Skala eines Meshes bestimmt die Größe des Meshes in Bezug auf seine ursprünglichen Dimensionen.
Wie verwende ich Mesh Größenverhältnis
Die Skalierungseigenschaft funktioniert etwas anders, abhängig von der verwendeten Mesh-Typen. Beachten Sie die Größe des BasePart bleibt unverändert, was bedeutet, dass die Physik-Kollisionskiste der Teil immer noch dieselbe bleibt.
- SpecialMesh Objekte mit SpecialMesh.FileType setzen auf "FileMesh" in der Skalierung in Bezug auf die ursprünglichen Dimensionen des Meshes, wenn sie auf Roblox hochgeladen wurden
- BlockMesh Objekte oder SpecialMesh Objekte mit SpecialMesh.FileType auf "Ziegelstein", "Keil" oder "Kugel" skalieren jeweils in der Relation 0>Class.BasePart.Size0> von ihrem übergeordnetes Teileinheitlich
- CylinderMesh Objekte oder SpecialMesh Objekte mit SpecialMesh.FileType auf "Cylinder" skalieren, relativ zu der 0> Class.BasePart.Size0> ihres übergeordnetes Teil. Uniform für die Höhenachse und die Breite des Zylinders, indem der niedrigste Wert verwendet wird.
- SpecialMesh Objekte mit SpecialMesh.FileType werden mit dem Skalierungsvorgang Head derzeit nicht standardmäßig skaliert. Entwickler sollten nicht darauf vertrauen, da dieses Verhalten geändert werden soll.
- SpecialMesh Objekte mit SpecialMesh.FileType setzen auf "Torso"-Skalierung auf eine nicht standardmäßige Weise. Entwickler sollten nicht auf dieses eingebenverlassen.
Mesh-Skalierungsdemonstration
Das obige Verhalten kann in den folgenden Demonstrationsbildern gesehen werden.
Linke Skalierung in Relation zu Teilgröße für "Ziegel", "Keil" und "Kugel"-Meshes.
Linke Skalierung in Relation zu dem ursprünglich hochgeladenen Netz für 'FileMesh'-Meshes
Uniform skalieren für 'Zylinder'-Meshes
Andere Verwendung für Größenverhältnis
Es gibt eine Reihe von interessanten Anwendungen für die Eigenschaften.
- DataModelMesh.Offset und Scale können mit TweenService relativ billig animiert werden, da der Motor keine Physik/Kollision-Berechnungen durchführen muss, da die BasePart nicht geändert wird.
- Ändern der Beziehung zwischen dem Mesh und seinem Kollisionsbereich (bestimmt durch das BasePart )
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()
VertexColor
VertexColor bestimmt die Hue-Änderung des Texture eines FileMesh . Beachten Sie, dass diese Eigenschaft ein 0> Datatype. Vector3
Obwohl diese Eigenschaft die grundlegende Änderung einer Textur erlaubt, bietet die Änderung einer Textur vollständig mehr Kontrolle. Siehe MeshPart für mehr Details.