SpecialMesh

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

SpecialMesh 對象適用網格到 BasePart 依據 MeshType 屬性。有許多選項可用。

  • 磚塊 - 一個方塊形狀,相當於一個 BlockMesh
  • 圓筒 - 與 Part 相同的圓筒,具有 Part.Shape 的 '圓筒'
  • 檔案網格 - 使用者上傳網格,相當於 FileMesh 使用 FileMesh.TextureId 屬性可應用的紋理
  • - 角色頭形狀
  • 球體 - 球體形狀,類似於 球 但可以在所有軸上自由縮放
  • 楔子 - 一個楔子形狀,與一個WedgePart相同
  • 軀幹 - 斜坡的方塊,將被棄用

注意,每個 SpecialMesh.MeshType 在使用 DataModelMesh.Scale 時會縮放不同,有關此詳情,請參閱 DataModelMesh.Scale 頁面。特殊網格對象也暴露了 DataModelMesh.Offset 屬性。

當使用特殊網格時,只有零件的外觀發生變化。零件的碰撞模型仍然相同。例如,一個角色無法正確地在網格上移動,因為網格的幾何圖形未被考帳號。

特殊網格 vs 網格零件

目前有兩種使用開發者創建的網格的方法。他們正在使用特殊網格,並將 SpecialMesh.FileType 設為「檔案網格」,或使用 MeshPart 。雖然整體來說, MeshPart 對象已經超越了特殊網格,但是開發者應該注意的一些差異。

範例程式碼

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

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

概要

屬性

屬性 繼承自 FileMesh
  • MeshId:ContentId
    平行讀取

    MeshId 是要顯示的網格ID的內容ID。

  • TextureId:ContentId
    平行讀取

    紋理ID是指要應用於網格的紋理的內容ID。

屬性 繼承自 DataModelMesh

屬性

平行讀取

SpecialMesh 對象適用的網格取決於 BasePart MeshType 屬性。有許多選項可用。

  • 磚塊 - 一個方塊形狀,相當於一個 BlockMesh
  • 圓筒 - 與 Part 相同的圓筒,具有 Part.Shape 的 '圓筒'
  • 檔案網格 - 使用者上傳網格,相當於 FileMesh 使用 FileMesh.TextureId 屬性可應用的紋理
  • - 角色頭形狀
  • 球體 - 球體形狀,類似於 球 但可以在所有軸上自由縮放
  • 楔子 - 一個楔子形狀,與一個WedgePart相同
  • 軀幹 - 斜坡的方塊,將被棄用

注意,每種網格類型在使用 DataModelMesh.Scale 時會縮放不同,有關此詳情,請參閱 DataModelMesh.Scale 頁面。

範例程式碼

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

方法

活動