Menu
CoddyTech

消失的桥

本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 10 课,共 25 课。

闪烁的灯光只改变了一部分。桥上有很多台阶,它们都必须一起改变。

GetChildren() 会将对象的直接子级作为一个表返回,可直接用于 for 循环。属于对象的函数(例如 GetChildren)要用冒号调用:

for _, child in workspace.Bridge:GetChildren() do
	print(child.Name)
end

文件夹也可以存放你的 Script,而 Script 没有 Transparency。对于每一种部件,child:IsA("BasePart") 的结果都是 true,而对于 Script,结果是 false。只有条件为 true 时,if condition then ... end 才会运行其中的语句:

if child:IsA("BasePart") then
	child.Transparency = 0.8
end

部件即使可以透视,仍然可能是实体:只有设置 CanCollide = false,玩家才能穿过去。

challenge icon

挑战

简单

让桥上的四级台阶消失又出现,循环往复。

  1. 将 task.wait(2) 和下面的循环放入 while true do ... end 中。
  2. 在其中那个循环之后,再添加一个 task.wait(2),以及第二个循环,将 Transparency 设为 0,并将 CanCollide 设为 true。

按“开始”:台阶每隔 4 秒淡出,并在 2 秒后重新出现。然后按“检查”。

亲手试试

local bridge = script.Parent

-- 这会让台阶在 2 秒后消失一次。
-- 让它们再过 2 秒重新出现,并一直重复这个过程。
task.wait(2)
for _, step in bridge:GetChildren() do
	if step:IsA("BasePart") then
		step.Transparency = 0.8
		step.CanCollide = false
	end
end
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Roblox 游戏脚本编写中的所有课

自己练习: Lua 在线编译器