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

  • Odczyt równoległy

    Odległość siatki określa pozycję względną z z siatką, na której siatka będzie wyświetlona.

  • Odczyt równoległy

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

  • Odczyt równoległy

    Zmienia odcień tekstury siatki, używany z FileMesh.TextureId.

Właściwości

Offset

Odczyt równoległy

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.

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

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.

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

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.

Metody

Zdarzenia