在體驗中,經常有許多原因與效果關係。例如:
- 如果玩家得到 10 分,則他們贏得遊戲。
- 如果玩家擁有強化效果,則他們可以跑得非常快。
- 如果玩家在聊天中說「生日快樂」,紙吹雪就會下雨。
腳本使用條件聲明來處理這類情況。 條件聲明 是只有在特定條件真實的情況下才會運行的代碼行。一種條件聲明類型是 if/then 聲明 。在 Luau 中,如果聲明的語法模式看起來像這樣:
如果然後使用 syntax
if "something happens" then-- 讓另一件事發生end
使用條件的代碼塊是 控制結構。: 控制結構與代碼形式的流程圖相似,可以包含多個條件聲明。
如果說明練習
這些步驟顯示如何創建一個腳本,如果一個聲明是真實的,就會變更零件的顏色。
在 伺服器腳本服務 中,創建新的腳本並將名稱命名為 TruthChecker 。添加適當的評論到腳指令碼。
-- 如果條件是真實的,更改零件創建一個名為「LieDetector」的新零件。
格式化 if 聲明
條件 可以以各種形式出現,但通常是簡單的數學方程式。例如,如果 1+1 等於 2,則執行一些代碼。像普通的數學方程式一樣,條件可以使用 操作符 ,例如 plus ( + ) 或 less than ( < ) 來評價聲明。
一個特定操作者需要注意的是 == ;它代表"相等於"。因此,聲明 2 + 2 == 4 可以讀為"兩加兩等於四"。請務必不要與 = 混淆,它會為變量等對象指定新值。
設定空條件。在腳指令碼中,輸入 if then , 然後按下 Enter 來自動完成條件。關鍵字 then 將被突出顯示,因為代碼不完整。
if then-- 空代碼end在關鍵字 if 之後,輸入真實聲明,例如 3 + 3 == 6。
if 3 + 3 == 6 then-- 空代碼end在條件中,參考你命名的「LieDetector」零件,並將零件的 Color 屬性變更為綠色。
if 3 + 3 == 6 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)end測試 您的代碼。如果三加三等於六,零件將變綠。
檢查假條件
現在,故意變更聲明,看看當數學方程式為假時會發生什麼情況。
在 if 聲明中,將方程變更為不準確的東西,例如 3 + 3 >= 10。
if 3 + 3 >= 10 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)end現在測試您的代碼。零件不應該因為錯誤聲明而變綠。
數學運算符
下表列出了一些常見的 Luau 運作者。有關運作者的更多資訊,請參閱 Luau 運作者 。
符號 | 意義 |
---|---|
+ | 新增 |
- | 減法 |
* | 乘法 |
/ | 分區 |
比較運作者
- == : 相等。
- ~= :不等於。
- < 或 > 用於少於或大於,分別為 respectively。
- <= 或 >= 用於少於或大於或等於,分別用於不同的情況。
變量和屬性
條件聲明也用於評價屬性和變量的狀態。下列步驟檢查變量是否成功獲得值。
刪除所有代碼,並將下列片段複製到腳指令碼中。測試它,新的錯誤出現在輸出中。
local mysteryPart = workspace.MysteryPart-- 如果已成功指派隱藏零件,評為真實if mysteryPart thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)end將新零件插入名為「神秘零件」的工作區。再次測試,檢測器應該變綠。
探索如何使用條件評估屬性。保留「神秘部分」,但再次刪除您的代碼,並複製下方的代碼盒。
local mysteryPart = workspace.MysteryPart-- 如果神秘部分完全不透明,評為真實if mysteryPart.Transparency == 0 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)mysteryPart.Transparency = .2end測試代碼,如果 MysteryPart 具有預設透明度 0,它將在 LieDetector 變綠時變得幽靈般。
總結
條件聲明檢查是否有一個聲明是準確的,如果是的話,執行一些代碼。如果聲明是非常常見的條件聲明類型。他們使用模式「如果這是真的,就這麼做」。
使用條件聲明的代碼塊稱為控制結構。控制結構可以包含多個條件聲明。
除了評估簡單的數學聲明是否真實外,條件也用於檢查變量和屬性的狀態。