(Roblox scripting) 需要"GetMaterialColor"或"SetMaterialColor"的帮助

我是一个新手,在Roblox scripting上工作,我正在开发一个游戏。我想制作一个有多个星球的探索游戏。我希望行星表面的颜色有所不同,但我也想使用平滑地形,因为它更容易使用和外观漂亮。通过在线阅读一些内容,我已经明白需要使用"GetMaterialColor"或"SetMaterialColor"。 然而,"SetMaterialColor",我需要的那一个,需要两个信息位-材质和颜色。

这个问题出在"材质"部分,因为我不知道如何让脚本识别我想要更改的材料。我尝试过多种方法,包括但不限于: (草,#,#,#) (草) (#,#,#) ("Grass"),(#,#,#) ("Grass",#,#,#) 甚至只是(#,#,#),都没有尝试获取特定的材质

所以是的,我需要一些帮助

这是代码:

local function onTouch(hit)
    game.Workspace.Terrain:SetMaterialColor

end

script.Parent.Touched:connect(onTouch)

(SetMaterialColor后面应该有东西,这就是我需要帮助的地方)

点赞
用户12278401
用户12278401

如果您阅读一下Terrain:SetMaterialColor()的文档,您会发现第一个参数是Material类型,它是一个枚举。因此,该方法期望的是一个枚举(或者更准确地说是一个数字),而不是代表材料的字符串。

同时,第二个参数是Color3,因此 (#,#,#)是不合适的,使用构造函数Color3.fromRGB(#,#,#)是可以的。如果您对一个方法返回或期望的内容感到困惑,可以参考https://developer.roblox.com/上的文档。

以下是正确使用的示例:

workspace.Terrain:SetMaterialColor(Enum.Material.Grass, Color3.fromRGB(123,123,123))

当然,应该使用Event:Connect()而不是Event:connect()。

2020-07-19 03:38:15