画面がアクティブかどうかを確認するためのチェックがいくつかあります。コードは次のようになります。
if (GUI.Button(new Rect(Screen.width / 2 - 10, 50, 50, 30), "Rules")) //Creates a button
{
if (ruleScreenActive == true) //check if the screen is already active
ruleScreenActive = false; //handle according to that
else
ruleScreenActive = true;
}
ボタンをクリックするたびにruleScreenActive
の値を反転する方法はありますか?
(これはUnity3DのC#です)
Boolの値を無効にすることにより、if/elseステートメントを削除できます。
ruleScreenActive = !ruleScreenActive;
私は書く方が良いと思います:
ruleScreenActive ^= true;
そうすることで、変数名を2回書くことを避けられます...
これはインライン化されるため、読みやすさが向上し、実行時コストは変わりません。
public static bool Invert(this bool val) { return !val; }
与えるには:
ruleScreenActive.Invert();
ruleScreenActive = !ruleScreenActive;