參數練習 - 按鈕

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

按鈕可以被玩家用來解鎖新區域、給予分數和揭示寶藏。每當玩家觸碰按鈕時,應該給予一些反饋,讓玩家知道正在與之互動,例如改變顏色或發出聲音。

在這個例子中,按鈕將用來啟動一座橋樑。當按鈕被按下時,它會變成綠色,玩家將能夠使用這座橋樑。如果玩家沒有按下按鈕,當他們試圖走上橋樑時,將會掉下去。

建立橋樑

首先設置橋樑。

  1. 在你的環境中創建一個玩家需要橋樑的區域。

  2. 創建一個橋樑的部件並將其重命名為 Bridge。

  3. 選擇橋樑,在屬性窗口中:

    • Transparency 改為 .5。對於透明度,0 是可見的,1 是不可見的。
    • 勾選 Anchor
    • 取消勾選 CanCollide
  4. 當你測試遊戲時,橋樑應該看起來朦朧,並且人們還不能走上去。

創建按鈕

現在橋樑已經設置好了,創建按鈕。

  1. 創建一個名為 Button 的新部件。

  2. 將按鈕顏色改為紅色。

  3. Anchor 按鈕。

  4. 移動按鈕,使其稍微懸浮而不接觸任何物體。這樣可以確保 Touched 事件不會意外觸發。

使按鈕可互動

這次,您將使用 Touched 事件來創建一個使橋樑可用的按鈕,而不是用來創建陷阱。要使橋樑可碰撞,請在玩家觸碰按鈕時運行的自定義函數中使用代碼 bridge.CanCollide = true。你知道完成以下步驟所需的一切。

在查看代碼解決方案之前,試著自己解決它。

  1. 在按鈕中插入一個名為 ActivateBridge 的新 script
  2. 刪除 Hello World
  3. 為橋樑和按鈕創建變量。
  4. 創建一個 local function,當按鈕被觸碰時執行以下操作:
    • 打印 "button touched"
    • 當被觸碰時將按鈕的顏色從紅色改為綠色。
    • 將橋樑的透明度改為 0 以使其可見。
    • 通過使用代碼 bridge.CanCollide = true 使橋樑可用。
  5. 將函數連接到按鈕的 Touched 事件。
  6. 測試腳本,確保當按鈕被觸碰時橋樑出現。

代碼解決方案 以下是一個可能的代碼解決方案

-- 將此腳本插入按鈕
-- 當某物觸碰按鈕時將按鈕變為綠色。
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

故障排除你的代碼

問題:遊戲開始時橋樑已經是實心的。 確保部件是固定的並且不接觸任何物體。部件可能會接觸到某些東西,例如地形或另一個部件,並導致 buttonPressed() 函數意外觸發。

問題:你在輸出窗口中收到錯誤消息:“Bridge is not a valid member of Workspace” 檢查以下內容:

  • 橋樑的命名。腳本中的橋樑必須與資源管理器中的名稱完全相同。
  • part.Touched:Connect(buttonPressed) 必須在 buttonPressed() 函數之外。

可選代碼挑戰

本課程中的腳本也可以用來保持門以阻止玩家進入特定區域。練習你的編碼技能,並執行以下操作:

  • 創建一個門部件。
  • 在門的更遠處創建一個按鈕。
  • 更改本課程中的腳本,使其改變門的透明度,並使玩家無法與之碰撞。

你的版本可能看起來像這樣:

local button = script.Parent
-- 提醒:將部件的名稱 Gate 替換為你項目中的名稱
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- 將按鈕變為紅色以給玩家反饋
button.BrickColor = BrickColor.Red() -- 更改此處
-- 使門不可見
gate.Transparency = 1
-- 使玩家可以穿過門
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。