DataModelMesh 是一個抽象類,從它下面會降級網格類。
網格類是對,當與 BaseParts 親和時,改變零件的外觀變成預設網格的外觀。 注意,它們只會改變零件的外觀,而不是物理/碰撞界。發展人員想要對網格應用於零件,以便改變零件的碰撞界,應該使用 Class.MeshPart|MeshParts
注意 MeshPart 和 CharacterMesh 類別不會從 DataModelMesh 減少。
概要
屬性
網格的 Offset 決定了網格在 BasePart.Position 的 BasePart 的相對位置。
網格的尺寸將網格的尺寸與原始尺寸相對。
使用 FileMesh.TextureId 與網格的紋理發生變化。
屬性
Offset
網格的 Offset 決定網格與顯示網格的 BasePart.Position 的距離。
如何使用網格偏移值
離移屬性改變網格會在何處顯示的相對位置。例如,離移 0, 5, 0 會導致網格在 BasePart 的位置上顯示 5 格。
Class.BasePart 的位置不會改變,這意味著零件的物理碰撞箱將會保持在同一位置。這是在下圖中的圖示,其中綠色偽裝 (a SelectionBox ) 顯示了 BasePart 的內容。
偏移值錯誤的其他使用
有一些有趣的使用網格偏移屬性。
- Class.DataModelMesh.Scale 可以使用 TweenService 來在相對便宜的價格上動畫,因為引擎不需要進行任何物理/碰撞計算,因為 BasePart 不需要移動。
- 變更網格和其衝突範圍之間的關係 (由 BasePart 決定)
範例程式碼
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
網格的尺寸將網格的尺寸與原始尺寸相對。
如何使用網格縮比例
鱗片屬性會因使用的網格類型而稍微不同。注意BasePart 的大小,這表示零件的物理衝突箱將會保持不變,即零件的物理學衝突盒會保持相同。
- SpecialMesh 對象,SpecialMesh.FileType 設置為 "FileMesh" 鱈服於 Roblox 上傳時的網格原始尺寸
- BlockMesh 對象或 SpecialMesh 對象,其中 SpecialMesh.FileType 設置為 "磚塊"、"楔子" 或 "球體" 與其親級相對於 0>Class.BasePart.Size0> 的平均父元素
- CylinderMesh 對象或 SpecialMesh 對象,其中 SpecialMesh.FileType 設為「Cylinder」對於其父元素親的 0> Class.BasePart.Size0> 的比例,並且使用最低值來設定圓柱的高度和寬度,使用
- SpecialMesh 對象有 SpecialMesh.FileType 設置為 "頭" 現在將以非標準方式擴展。開發人員不應將此視為他們的計劃來變更此行為。
- SpecialMesh 對象設有 SpecialMesh.FileType 以非標準方式設為 "軀體" 縮放。開發人員不應將此視為他們的計劃以淘汰此網格輸入。
網格模型展示
以下示例圖像中可以看到上述行為。
對於「磚塊」、「楔子」和「球體」網格的零件尺寸進行相對線性調整。
適用於「FileMesh」網格的原始上傳網格的比例
「圓柱」網格的非對稱縮放
網格尺比例的其他用途
有一些有趣的使用網格偏移屬性。
- DataModelMesh.Offset 和 TweenService 可以用於 BasePart 不需要進行任何物理/衝突計算,因為引擎不需要進行任何物理/衝突計算,因為 0> Class.BasePart0> 不需要變更。
- 變更網格和其衝突範圍之間的關係 (由 BasePart 決定)
範例程式碼
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()