在 Roblox Studio 入门 中,您学习了如何在 Roblox Studio 中创建和操作部件。在本教程中,您将学习如何将 脚本 应用到部件上,使平台出现和消失。您可以在平台游戏中使用此功能,以跨越间隙,挑战用户仔细把握跳跃时机,以到达另一侧。
设置场景
首先,您需要一个 Part 作为平台。从 Roblox Studio 入门 中,您应该已经熟悉了制作和移动部件。除了平台之外,您不需要一个复杂的世界——您只需要一个用户无法轻易跳过的间隙。
插入一个 Part 并将其重命名为 DisappearingPlatform。
调整其大小,使其足够大以供用户跳跃。
将其移动到适当的位置,以便在测试体验时能够到达并跳上去。

在 属性 窗口中将 Anchored 属性设置为 true。

插入脚本
Roblox 中的代码是用一种叫做 Luau 的语言编写的,可以将其放在 Explorer 中的各种容器中的脚本里。如果您将脚本放在 Part 下,当部件加载到体验中时,Roblox 会运行该脚本的代码。
在 Explorer 窗口中,将鼠标悬停在 DisappearingPlatform 部件上,然后点击 + 按钮将新脚本插入到平台中。将新脚本重命名为 Disappear。

删除内部的默认代码。
第一个变量
在脚本的开头为平台创建一个 变量 是个好主意。变量是与 值 相关联的 名称。一旦创建了变量,您可以多次使用它。您可以根据需要更改值。
在 Luau 中,变量的创建方式如下:local variableName = variableValue。
术语 local 表示该变量只会在声明它的脚本块中使用。= 符号用于设置变量的值。变量的名称通常用 驼峰式 编写。这是小写字母开头,后面的每个单词首字母大写,例如 justLikeThis。
复制以下代码为平台创建一个名为 platform 的 变量,其值为 script.Parent。
local platform = script.Parent
消失函数
是时候让平台消失了。将实现特定操作的代码分组到一个 函数 中总是最好的。函数是一个命名的代码块,帮助您组织代码并在多个地方使用它,而无需重新编写。创建一个名为 disappear 的 函数。
local platform = script.Parent
local function disappear()
end
第一行 声明 了该函数——它表明了函数的开始并将其命名为 disappear。函数的代码写在首行和 end 之间。
括号用于根据需要包含额外的信息。您将在后面的课程中学习更多关于向函数传递信息的内容。
部件属性
当平台消失时,它需要不可见,并且用户需要能够穿过它——但您不能简单地销毁平台,因为它需要稍后重新出现。
部件有各种 属性 可以在这里使用。请记住,如果您选择一个部件并查看 属性 窗口,您可以看到该部件的属性。
通过更改 透明度 属性,可以使部件变得不可见。透明度可以是 0 到 1 之间的值,其中 1 完全透明并因此不可见。
CanCollide 属性决定其他部件(和用户)是否可以穿过该部件。如果将其设置为 false,用户将穿过平台。
就像 script.Parent 一样,属性是通过 点 访问的。使用等号来赋值。
在 disappear 函数中,将平台的 CanCollide 属性设置为 false。
在接下来的行中,将 Transparency 属性设置为 1。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1end
调用函数
一旦声明了函数,您可以通过在其旁边写上括号来运行它。例如,disappear() 将运行 disappear 函数。这称为 调用 函数。
在脚本末尾 调用 disappear 函数。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1enddisappear()发起游戏测试。如果您的代码工作正常,当用户出生时,平台应该已经消失。
出现函数
您可以通过编写一个与 disappear 函数完全相反的函数来轻松使平台重新出现。
从脚本中删除 disappear() 行。
声明一个名为 appear 的新函数。
在函数体内,将 CanCollide 属性设置为 true,将 Transparency 属性设置为 0。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1endlocal function appear()platform.CanCollide = trueplatform.Transparency = 0end
循环代码
平台应该不断消失和重新出现,每次变化之间相隔几秒钟。写无限数量的函数调用是不可能的——幸运的是,有了 while 循环,您就不必这样做。
while 后面的 语句 为真时,while 循环会运行其中的代码。这个特定的循环需要永远运行,因此语句应该是 true。在脚本的末尾创建一个 while true 循环。
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
end
切换平台
在 while 循环中,您需要编写代码,以便在平台消失和重新出现之间等待几秒钟。
可以使用内置函数 task.wait() 来实现这一点。在括号内需要等待的秒数,例如 task.wait(3)。
三秒是平台状态之间间隔时间的一个合理起点。
- 在 while 循环中,调用 task.wait() 函数,括号中填入 3。
- 调用 disappear 函数。
- 再次调用 task.wait() 函数,括号中填入 3。
- 调用 appear 函数。
while true dotask.wait(3)disappear()task.wait(3)appear()end
平台的代码现在已经完成!现在测试您的代码,您应该会发现平台在三秒后消失,并在三秒后以循环的方式重新出现。
您可以复制这个平台以覆盖更大的间隙,但您需要在每个脚本中更改等待时间。否则,所有平台会同时消失,用户将无法通过。
最终代码
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
task.wait(3)
disappear()
task.wait(3)
appear()
end