数値を比較する
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 7/85。
ほとんどの条件は2つの値を比較し、比較の結果はすべて bool になります。
a == b:a は b と等しい。等号を2つ使います。=を1つだけ使うと、値を変数に代入します。a != b:a は b と等しくないa < bとa > b:より小さい、より大きいa <= bとa >= b:以下、以上
2つのことを同時に確認するには、それらをつなげます。&&は「かつ」(両方が true である必要があります)、||は「または」(どちらか一方で十分です)を意味します。
if (coins >= 10 && level == 3)
{
Debug.Log("The shop is open");
}Input.GetKeyDown(KeyCode.E)も bool ですが、GetKeyとは異なり、キーを押し下げた1フレームだけ true になります。そのため、キーを押し続けても、1回の押下は1回だけカウントされます。
チャレンジ
簡単プレイヤーが3個以上の鍵を持っていて、Eを押すとドアが開くはずです。
Update()内のKブロックの下に、ただしその中ではなく、if (keys >= 3 && Input.GetKeyDown(KeyCode.E))と書きます。- その波括弧の中に、
transform.position = new Vector3(0, 4.5f, 3);と書きます。
「プレイ」を押し、Kを3回押してからEを押します。ドアが上にスライドします。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class KeyDoor : MonoBehaviour
{
int keys = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.K))
{
keys++;
Debug.Log("Keys: " + keys);
}
// keys が 3 個以上あり、E を押したらドアを開く:
// ドアを (0, 4.5f, 3) に移動する。
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド