文件网格对父对象施加文本网格,当父对象与它父对象时。它的属性继承自 Class.SpecialMesh 对象。
FileMesh 是什么?
用户上传的网格可以应用到 BasePart 。网格的应用取决于 FileMesh.MeshId 属性。另外 ,也可以使用 FileMesh.TextureId 来应用 тексту。
虽然它不是抽象类,且可以由开发人员使用,但所有 FileMesh 属性都是继承自 SpecialMesh 对象。当 SpecialMesh 设置为 2>FileMesh2> 时,两个对象都完全相同
有关使用网格的更多信息,请参阅SpecialMesh页面。
代码示例
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()
概要
属性
MeshId 是要显示的网格内容的 ID。
TexturereId 是要应用到网格的材质的内容 ID。
网格的 Offset 决定了网格在 BasePart.Position 的 BasePart 上显示的相对位置。
网格的尺寸由网格的原始尺寸决定。
改变网格的材质的纹理,用于 FileMesh.TextureId 。
属性
MeshId
MeshId 是要显示的网格内容的 ID。
网格的内容ID会在开发者上传网格到Roblox网站时生成。
我如何创建网格?
网格目前只能使用 MeshParts 或资产管理器上传。一旦上传,网格内容ID 可以用于 MeshId 属性。了解更多信息,请参阅 网格。
代码示例
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
TexturereId 是用于添加网格纹的图像的内容 ID 。当 TexturereId 属性设置为空字字符串时,将不会对网格添加任何内容。
我如何改变网格的材质?
使用 TextureId 属性,可以在不需要重新上传网格的情况下更改网格的纹理。 要实现此操作,新图像需要上传到 Roblox ,并使用“导出选择”选项在 Roblox Studio 中导出网格。 原始纹理图像文件可以通过导出选项在 Roblox Studio 中保存。
然后,新的纹理可以作为“贴纸”重新上传到 Roblox,其内容 ID 可以使用 TextureId 属性应用到网格。
我如何才能制作纹理网格?
网格只能通过添加 UV 网格材料来获得纹理。 UV 网格材料通常指的是“投射”网格材料到网格上。 这不能使用 Roblox Studio 进行,还需要使用第三方 3D 建模应用程序,例如 Blender 。
代码示例
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