SpecialMesh

顯示已棄用項目

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

Class.SpecialMesh 對象適用網格到 BasePart ,依據 MeshType 屬性。有一些選項可用。

  • 磚塊 - 一個方塊形狀,相當於 BlockMesh
  • 圓筒 - 圓筒,與 Part 相同,具有 Part.Shape 的 '圓筒'
  • 檔案網格 - 使用 FileMesh 可對應的網格,與網格可以應用到使用 FileMesh.TextureId 屬性
  • 頭部 - 角色頭部形狀
  • 球體 - 球體形狀,與 Part 類似,但可以在所有軸上自由調整
  • 楔子 - 楔子形狀, 與 WedgePart 相同
  • 軀體 - 斜面的方塊,由於被棄用

注意,使用 SpecialMesh.MeshType 時,每個 DataModelMesh.Scale 將以不同的方式縮放,獲取更多關於此內容的資訊,請參閱 DataModelMesh.Scale 頁面。 特殊網格對象也會顯示 1>Class.DataModelMesh.Offset1> 屬性。

當使用特殊網格時,只有特殊網格的外觀變更。 網格的結構模型仍然保持相同。 例如,一個角色無法正確走路,因為網格的結構沒有被考帳號。

SpecialMesh 與 MeshPart

目前有兩種使用開發者創建網格的方法。他們正在使用一個 SpecialMesh.FileType 設置為 MeshPart,或使用 MeshPart 。雖然,在整個方面, 2>Class.MeshPart2> 對象超越了 5>Class.Mesh5> ,但有一些差異開發者應該注意

  • BasePart.Material 在使用 MeshPart 和 特殊網格 時正確顯示在網格上
  • Class.MeshPart|MeshParts 包括 MeshPart.CollisionFidelity 屬性,意味著 MeshPart 的衝突模型可以設置與網格相似。 特殊網格對象的對比 0> Class.BasePart|BaseParts0> 則使用 MeshParts3> 的衝突模
  • Class.MeshPart 的網格將依據 Size 屬性,隨所軸對稱 網格 的大小,MeshPart 的網格 不會
  • SpecialMesh 對象包含 OffsetScale 屬性,而 MeshParts
  • Class.FileMesh.MeshId|MeshId 屬性的 SpecialMesh 可以在執行階段時間變更為 Script 或 1>Class.LocalScript1> 。 4>Class.MeshPart4> 的 7>Class.FileMesh7> 屬性無法。

範例程式碼

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

  • TextureId:ContentId
    平行讀取

    TexturereId 是適用於網格的材質內容的 ID。

屬性 繼承自 DataModelMesh

屬性

平行讀取

Class.SpecialMesh 對象適用於 BasePart ,取決於網格類屬性。有一些選項可用。

  • 磚塊 - 一個方塊形狀,相當於 BlockMesh
  • 圓筒 - 圓筒,與 Part 相同,具有 Part.Shape 的 '圓筒'
  • 檔案網格 - 使用 FileMesh 可對應的網格,與網格可以應用到使用 FileMesh.TextureId 屬性
  • 頭部 - 角色頭部形狀
  • 球體 - 球體形狀,與 Part 類似,但可以在所有軸上自由調整
  • 楔子 - 楔子形狀, 與 WedgePart 相同
  • 軀體 - 斜面的方塊,由於被棄用

注意,使用 DataModelMesh.Scale 時,每個網格類型的大小將會依照異步, for more information on this please see the page on DataModelMesh.Scale .

範例程式碼

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

方法

活動