J'ai quelques vérifications pour voir si un écran est actif. Le code ressemble à ceci:
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;
}
Existe-t-il un moyen - chaque fois que je clique sur le bouton - d'inverser la valeur de ruleScreenActive
?
(Il s'agit de C # dans Unity3D)
Vous pouvez vous débarrasser de vos instructions if/else en annulant la valeur du bool:
ruleScreenActive = !ruleScreenActive;
Je pense qu'il vaut mieux écrire:
ruleScreenActive ^= true;
de cette façon, vous évitez d'écrire le nom de la variable deux fois ... ce qui peut entraîner des erreurs
Cela serait indiqué, donc la lisibilité augmente, les coûts d'exécution restent les mêmes:
public static bool Invert(this bool val) { return !val; }
Donner:
ruleScreenActive.Invert();
ruleScreenActive = !ruleScreenActive;