DataModelMesh

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
不可浏览

DataModelMesh 是从 DataModel 下生成的抽象类。

网格类是对,当父级设为 BaseParts 时,改变零件的外观到Class.MeshPart|BaseParts 的预设网格。 注意,它们只改变零件的外观,而不是物理/碰撞边界。开发人员想要将网格应用到更改零件的碰撞边界的零件上,应该使用 Class.Mesh

注意 MeshPartCharacterMesh 类不会从数据模型网格中降级。

概要

属性

属性

Offset

读取并联

网格的 Offset 确定网格将显示的 BasePart.Position 的距离。

如何使用网格偏移值

Offset 属性改变网格将在哪里渲染。例如,一个 0、5 的 Offset 会使网格在 BasePart 的位置上显示 5 格。

Class.BasePart 的位置始终不会改变,这意味着零件的物理碰撞箱将保持在同一个位置。这在下面的图像中显示,其绿色轮廓 (a SelectionBox ) 显示了 BasePart 的内容。

网格偏移值的其他用途

有一些有趣的使用网格 Offset 属性。

  • 可以使用 DataModelMesh.Scale 这样的相对便宜的方式来动画 Offset 和 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 设置为 “砖”、“楔” 或 “球” 与父元素级 Class.BasePart.Size 无关
  • CylinderMesh 对象或 SpecialMesh 对象,其中 SpecialMesh.FileType 设置为“Cylinder”,与其父元素级的 0> Class.BasePart.Size0> 无异。在圆柱体高度轴上使用最低值,并保持对称的高度和宽度,使用
  • SpecialMesh 对象使用 SpecialMesh.FileType 设置为 “头” 当前缩放非常不标准。开发人员不应该将此视为他们的计划来更改此行为
  • SpecialMesh 对象,其SpecialMesh.FileType 设置为“躯干”,以非标准方式缩放在“扁平面”上。开发人员不应将此视为他们的计划来淘汰此网格输入。

网格模型示例

上述行为可以在以下示例图像中看到。

对“砖”、“楔”和“球”网格的零件尺寸进行线性缩放。

将原始上传网格缩放到“FileMesh”网格的相对位置

“汽缸”网格的非标准缩放

网格缩放的其他用途

有一些有趣的使用网格 Offset 属性。

代码示例

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

读取并联

垂直起降颜色改变 决定了 TextureFileMesh 的色调变化。注意到,这个属性是一个 0>

虽然此属性允许对纹理进行基本修改,但改变材质完全提供更多控制。请参阅 MeshPart 获取更多信息。

方法

活动