DataModelMesh

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Brak możliwości przeglądania

DataModelMesh jest abstraktną klasą, z której pochodzą klasy sieci.

Klasy sieci są obiektami, które, gdy są związane z BaseParts zmieniają wygląd części na ten z predefinowanej sieci. Uwaga, zmieniają tylko wygląd części, a nie granice fizyki/kollizji części. Rozwójcy, którzy rozważają zastosowanie sieci do części, która zmienia kollizję części, powinni uży

Uwaga MeshPart i CharacterMesh klasy nie zależą od DataModelMesh.

Podsumowanie

Właściwości

Właściwości

Offset

Odczyt równoległy

Odległość od BasePart.Position kształtuje się w odległości od BasePart , w której będzie wyświetlony Class.BasePart.

Jak użyć zmniejszenia siatki

Właściwość Offset zmienia relatywne położenie, w którym renderowana jest siatka. Na przykład, odległość 0, 5, 0 powoduje, że siatka będą wyświetlane 5 jednostek ponad pozycją BasePart.

Pozycja BasePart pozostaje niezmienna, co oznacza, że książka kolizji fizycznej części pozostanie w tym samym lokalizacie. To jest pokazane na obrazie poniżej, gdzie zielony kontur (a SelectionBox ) pokazuje składniki BasePart .

Inne użycia dla zmiany odległości sieci

Istnieje wiele ciekawych zastosowań dla właściwości przesunięcia siatki.

  • Odległość i DataModelMesh.Scale można animować za pomocą TweenService stosunkowo tanie, ponieważ silnik nie musi wykonować żadnych kosztownych obliczeń fizyki/kollizji, ponieważ BasePart nie jest ruchana.
  • Zmiany w związku między siatką a jej kolizją (zdeterminowane przez BasePart )

Przykłady kodu

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

Odczyt równoległy

Skala siatki określa rozmiar siatki w stosunku do jej pierwotnych wymiarów.

Jak użyć skali siatki

Właściwość skali działa nieco inaczej w zależności od użytego typu siatki. Zauważ wielkość BasePart pozostaje niezmieniona, co oznacza, że książka kolizji fizycznej części pozostanie taka sama.

  • SpecialMesh obiekty z SpecialMesh.FileType ustawionym na skalę FileMesh w odniesieniu do oryginalnych wymiarów sieci po załadowaniu do Roblox
  • BlockMesh obiektów lub SpecialMesh obiektów z ustawieniem SpecialMesh.FileType na „Cegła”, „Skała” lub „Kula” w skali równomierności względem 0> Class.BasePart.Size0> ich rodziców
  • CylinderMesh obiekty lub SpecialMesh obiekty z ustawieniem SpecialMesh.FileType na „Cylinder” w skali względem rodzica. Rozsądnie dla wysokości i szerokości cylindra, używając najniższego wartości.
  • SpecialMesh obiekty z SpecialMesh.FileType ustawionym na „Głowa” obecnie skalują niezgodnie z normą. Rozwój programistów nie powinien polegać na tym, że ​​zależą od tego, jak to zachowanie będzie zmienione
  • obiekty Class.SpecialMesh z ustawionymi Class.SpecialMesh.FileType na skalę Torso w nie standardowy sposób. Rozwójcy nie powinni polegać na tym, jako że są plany deprecji tego wpisywaćsieci.

Demonstracja skali siatki

Poniżej można zobaczyć przykładowe obrazy zachowań.

Liniowe skalowanie względem rozmiaru części dla "Klocka", "Kąta" i "Kuli".

Skalowanie liniowe w stosunku do pierwotnie zeskanowanej siatki dla 'FileMesh'

Nieuniwersalny skalowanie ograniczone dla siatek 'Cylinder'

Inne użycia dla skali siatki

Istnieje wiele ciekawych zastosowań dla właściwości przesunięcia siatki.

  • DataModelMesh.Offset i Skala można animować używając TweenService stosunkowo tanio, ponieważ silnik nie musi wykonywać żadnych kosztownych obliczeń fizyki/kolidencji, ponieważ BasePart nie jest zmieniany.
  • Zmiany w związku między siatką a jej kolizją (zdeterminowane przez BasePart )

Przykłady kodu

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

Odczyt równoległy

VertexColor określa zmianę koloru Texture z FileMesh . Uwaga, że ta właściwość jest 0> Datatype. Vector3</

Chociaż ta właściwość umożliwia podstawową modyfikację tekstury, zmiana całej tekstury zapewnia więcej kontroli. Zobacz MeshPart dla więcej szczegółów.

Metody

Zdarzenia