在 Roblox Studio 介紹 中,您學會了如何在 Roblox Studio 中創建和操作部件。在本教程中,您將學會如何將 腳本 應用於部件,使平台出現和消失。您可以在平台遊戲中使用這個功能來跨越間隙,挑戰用戶仔細計時跳躍以到達另一側。
設置場景
首先,您需要一個 部件 作為平台。創建和移動部件的過程應該對您來說很熟悉,這在 Roblox Studio 介紹 中已經講過。您不需要一個複雜的世界,只需一個用戶無法輕易跳過的間隙即可。
插入一個 部件 並將其重命名為 DisappearingPlatform。
調整大小,使其足夠大以供用戶跳上。
將其移動到合適的位置,以便在測試遊戲時能夠到達並跳上去。

在 屬性 窗口中將 Anchored 屬性設置為 true。

插入腳本
Roblox 中的代碼是用一種叫做 Luau 的語言編寫的,您可以將其放入 資源管理器 中的各種容器中的腳本中。如果您將腳本放在 部件 下,Roblox 將在部件加載到遊戲中時運行腳本的代碼。
在 資源管理器 窗口中將鼠標懸停在 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 之間。
括號用於根據需要包含附加信息。您將在以後的課程中學到更多有關將信息傳遞給函數的內容。
部件屬性
當平台消失時,它需要變得不可見,並且用戶需要能夠穿過它——但您不能僅僅摧毀平台,因為它需要稍後重新出現。
部件有各種 屬性 可以在這裡使用。請記住,如果您選擇一個部件並查看 屬性 窗口,您可以看到部件的屬性。
通過更改 Transparency 屬性,可以使部件變得不可見。透明度可以是 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 do
task.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