DataModelMesh
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
DataModelMesh to abstrakcyjna klasa, z której klasy siatki pochodzą.
Klasy siatki są obiektami, które, gdy zostaną przypisane do BaseParts, zmieniają wygląd części do wyglądu predefiniowanej siatki.Uwaga: zmieniają one wygląd części, a nie granice fizyki/kolizji części.Rozwoznicy, którzy chcą zastosować siatkę do części, która zmienia kolizję części, powinni używać MeshParts.
Zauważ, że klasy MeshPart i CharacterMesh nie pochodzą z DataModelMesh.
Podsumowanie
Właściwości
Odległość siatki określa pozycję względną z z siatką, na której siatka będzie wyświetlona.
Skala siatki określa rozmiar siatki w stosunku do jej pierwotnych wymiarów.
Zmienia odcień tekstury siatki, używany z FileMesh.TextureId.
Właściwości
Offset
Odległość od siatki określa odległość od >, w której siatka zostanie wyświetlona.
Jak używać offsetu siatki
Właściwość Offset zmienia względne położenie, na którym siatka zostanie wyrenderowana.Na przykład, odległość 0, 5, 0 spowoduje wyświetlenie siatki 5 ćwieków nad pozycją BasePart.
Pozycja BasePart pozostaje niezmieniona, co oznacza, że skrzynia kolizji fizycznych części pozostanie w tym samym miejscu.Zostaje to pokazane na poniższym obrazie, na którym zielony kontur (a SelectionBox ) pokazuje zakres BasePart .
Inne zastosowania dla przesunięcia siatki
Istnieje wiele interesujących zastosowań dla właściwości offsetu siatki.
- Odległość i DataModelMesh.Scale można animować za pomocą TweenService stosunkowo tanio, ponieważ silnik nie musi wykonywać żadnych obliczeń fizycznych/kolizyjnych, ponieważ BasePart nie jest przenoszony.
- Zmiana relacji między siatką a jej zakresem kolizji (określona przez BasePart )
Przykłady kodu
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()
Scale
Skala siatki określa rozmiar siatki w stosunku do jej pierwotnych wymiarów.
Jak używać skali siatki
Właściwość skali działa nieco inaczej w zależności od rodzaju używanego siatki.Zauważ, że rozmiar BasePart pozostaje niezmieniony, co oznacza, że skrzynia kolizji fizycznych części pozostanie taka sama.
- SpecialMesh obiekty z SpecialMesh.FileType ustawioną skalą "FileMesh" w odniesieniu do oryginalnych wymiarów siatki, gdy zostały przesłane do Roblox
- BlockMesh obiekty lub SpecialMesh obiekty z SpecialMesh.FileType ustawioną skalą "Cegła", "Klin" lub "Sfera" względem BasePart.Size ich rodzica
- CylinderMesh obiekty lub SpecialMesh obiekty z SpecialMesh.FileType ustawioną skalą "Cylinder" względem BasePart.Size ich rodzica.Równomiernie dla osi wysokości cylindrów i utrzymywanie stosunku 1:1 dla długości i szerokości cylindra, za pomocą najniższej wartości.
- SpecialMesh obiekty z SpecialMesh.FileType ustawionym na 'Głowa' obecnie skalują się w sposób nie standardowy.Twórcy nie powinni polegać na tym, ponieważ istnieją plany zmiany tego zachowania.
- SpecialMesh obiekty z SpecialMesh.FileType ustawioną skalą "Torso" w nie standardowy sposób.Twórcy nie powinni polegać na tym, ponieważ istnieją plany wycofania tego wpisywaćsiatki.
Demonstracja skali siatki
Powyższe zachowanie można zobaczyć na następujących obrazach demonstracyjnych.
Skalowanie liniowe względem rozmiaru części dla siatek "Cegła", "Klin" i "Sfera".
Skalowanie liniowe w stosunku do oryginalnie przesłanej siatki dla siatek "FileMesh"
Nieuznaczalna ograniczona skalowanie dla siatek "Cylinder"
Inne zastosowania dla skali siatki
Istnieje wiele interesujących zastosowań dla właściwości offsetu siatki.
- DataModelMesh.Offset i Skala można animować za pomocą TweenService stosunkowo tanio, ponieważ silnik nie musi wykonywać żadnych obliczeń fizycznych/kolizyjnych, ponieważ BasePart nie jest zmieniany.
- Zmiana relacji między siatką a jej zakresem kolizji (określona przez BasePart )
Przykłady kodu
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()
VertexColor
Kolor wierzchołka określa zmianę barwy Texture z FileMesh .Zauważ, że ta właściwość jest Vector3 zamiast Color3, aby ją przekształcić, użyj właściwości Color3.R, Color3.G i Color3.B.
Chociaż ta właściwość pozwala na podstawową modyfikację tekstury, zmiana tekstury w całości zapewnia większą kontrolę. Zobacz MeshPart dla więcej szczegółów.