FileMesh

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.

Obiekt FileMesh stosuje teksturowaną siatkę do BasePart gdy zostanie mu przypisany. Jego właściwości są dziedziczone przez obiekt SpecialMesh.

Co to jest FileMesh?

FileMeshes pozwalają użytkownikowi na zastosowanie przesłanych siatek do BasePart .Sieć, która jest zastosowana, zależy od właściwości FileMesh.MeshId.Teksturę można również zastosować do tej siatki za pomocą FileMesh.TextureId .

Chociaż nie jest to klasa abstrakcyjna i może być używana przez programistów, wszystkie właściwości FileMesh są dziedziczone przez obiekt SpecialMesh.A SpecialMesh zachowuje się identycznie do obiektu FileMesh, gdy jego SpecialMesh.MeshType jest ustawiony na "FileMesh".Chociaż oba obiekty są funkcjonalne, obiekt SpecialMesh jest oficjalnie wspieraną klasą.

Aby uzyskać więcej informacji na temat korzystania z siatek, zobacz stronę SpecialMesh.

Przykłady kodu

In this code sample a BasePart is instanced with a FileMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the FileMesh are then animated using TweenService.

FileMesh Offset and Scale

local TweenService = game:GetService("TweenService")
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("FileMesh") -- advised to use SpecialMesh instead
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
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
part.Parent = workspace
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()

Podsumowanie

Właściwości

  • MeshId:ContentId
    Odczyt równoległy

    MeshId to ID zawartości siatki, która ma być wyświetlona.

  • TextureId:ContentId
    Odczyt równoległy

    TextureId to ID treści tekstury, która ma być zastosowana do siatki.

Właściwości odziedziczeni z: DataModelMesh
  • 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

MeshId

ContentId
Odczyt równoległy

MeshId to ID zawartości siatki, która ma być wyświetlona.

ID treści dla siatki jest generowane, gdy programista przesyła siatkę do Roblox.

Przykłady kodu

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

TextureId

ContentId
Odczyt równoległy

Identyfikator tekstury jest ID treści obrazu, który ma zostać zastosowany do tekstury siatki.Gdy właściwość TextureId jest ustawiona na pustą ciąg, żadna tekstura nie zostanie zastosowana do siatki.

Jak zmienić teksturę siatki?

Używając właściwości TextureId, można zmienić teksturę siatki bez konieczności ponownego przesłania siatki.Aby to zrobić, nowy obraz będzie musiał zostać przesłany do Roblox z żądaną teksturą.Oryginalny plik obrazu tekstury można uzyskać, wyeksportując siatkę za pomocą opcji "Eksportuj wybór" w Roblox Studio.Plik obrazu zostanie zapisany obok pliku .obj eksportowanego.

Nowa tekstura może następnie zostać ponownie przesłana do Roblox jako dekal i jej ID treści można zastosować do siatki za pomocą właściwości TextureId.

Jak mogę stworzyć teksturowaną siatkę?

Sieć może być tylko teksturowana, jeśli sieć została skompresowana UV.Mapowanie UV odnosi się do praktyki projektowania mapy tekstury na siatce.Nie można tego zrobić za pomocą Roblox Studio i należy to zrobić za pomocą zewnętrznej aplikacji do modelowania 3D, takiej jak Blender.

Przykłady kodu

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

Mesh VertexColor

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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

Metody

Zdarzenia