ゲームでは、しばしば多くの因果関係があります。例えば:
- プレイヤーが10ポイントを獲得した場合、ゲームに勝ちます。
- プレイヤーがパワーアップを持っている場合、超速で走ることができます。
- プレイヤーがチャットで「お誕生日おめでとう」と言った場合、紙吹雪が降ります。
スクリプトは、これらのタイプの状況を処理するために条件文を使用します。条件文は、特定の条件が真である場合にのみ実行されるコードの行です。条件文の一種がif/then文です。Luauでは、if文の構文パターンは次のようになります:
if "何かが起こる" then
-- 何か別のことを起こす
end条件を使用したコードの塊は制御構造と呼ばれます。制御構造は、コード形式のフローダイアグラムのようなもので、いくつかの条件文を持つことができます。
if文の練習
これらの手順は、条件が真である場合にパーツの色を変更するスクリプトを作成する方法を示しています。
ServerScriptService内に新しいスクリプトを作成し、名前をTruthCheckerにします。スクリプトに適切なコメントを追加します。
-- 条件が真である場合にパーツを変更しますLieDetectorという名前の新しいパーツを作成します。
if文のフォーマット
条件はさまざまな形で現れますが、しばしば数学の方程式のような単純な文です。例えば、1+1が2に等しい場合、いくつかのコードを実行します。通常の数学の方程式と同様に、条件文は演算子(例えば、加算(+)や小なり(<))を使用して文を評価できます。
特に注意すべき演算子は==です。これは「等しい」を意味します。したがって、2 + 2 == 4という文は「2足す2は4に等しい」と読むことができます。=と混同しないように注意してください。=は変数のようなオブジェクトに新しい値を割り当てます。
空の条件文を設定します。スクリプトにif thenと入力し、Enterを押して条件文を自動補完します。キーワードthenはコードが不完全なため、下線が引かれます。
if then-- 空のコードendifのキーワードの後に、3 + 3 == 6のような真の文を入力します。
if 3 + 3 == 6 then-- 空のコードend条件文内で、LieDetectorという名前のパーツを参照し、そのパーツのColorプロパティを緑に変更します。
if 3 + 3 == 6 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endテストします。3足す3が6に等しい場合、パーツは緑色になります。
偽の条件を確認する
次に、意図的に文を変更して、数学の方程式が偽のときに何が起こるかを見てみましょう。
if文で、方程式を3 + 3 >= 10のような不正確なものに変更します。
if 3 + 3 >= 10 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)end今、コードをテストします。偽の文の場合、パーツは緑色にならないはずです。
数学演算子
以下の表は、一般的なLuauの演算子を示しています。演算子に関する詳細情報はLuau Operatorsで確認できます。
| 記号 | 意味 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
比較演算子
- == : 等しい。
- ~= : 等しくない。
- < または > はそれぞれ小なりまたは大なりに使用されます。
- <= または >= はそれぞれ小なり/大なりまたは等しいに使用されます。
変数とプロパティ
条件文は、プロパティや変数の状態を評価するためにも使用されます。以下の手順では、変数が値を正常に割り当てられたかどうかを確認します。
すべてのコードを削除し、以下のスニペットをスクリプトにコピーします。テストすると、新しいエラーがOutputに表示されます。
local mysteryPart = workspace.MysteryPart-- MysteryPartが正常に割り当てられた場合は真として評価されますif mysteryPart thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endワークスペースにMysteryPartという名前の新しいパーツを挿入します。再度テストすると、LieDetectorが緑色になるはずです。
プロパティが条件文でどのように評価されるかを探ります。MysteryPartを保持しますが、再度コードを削除し、以下のコードボックスをコピーします。
local mysteryPart = workspace.MysteryPart-- MysteryPartが完全に不透明な場合は真として評価されますif mysteryPart.Transparency == 0 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)mysteryPart.Transparency = .2endコードをテストし、MysteryPartのデフォルトの透明度が0であれば、幽霊のようになり、LieDetectorが緑色になります。
まとめ
条件文は、文が正確であるかどうかを確認し、正しければコードを実行します。if文は非常に一般的なタイプの条件文です。「これが真であれば、あれを実行する」というパターンを使用します。
条件文を使用したコードの塊は制御構造と呼ばれます。制御構造は複数の条件文を保持できます。
単純な数学の文が事実であるかどうかを評価するだけでなく、条件文は変数やプロパティの状態を確認するためにも使用されます。