我可以';反转';嘘声
本文关键字:嘘声 反转 我可以 | 更新日期: 2023-09-27 18:20:35
我要检查一下屏幕是否处于活动状态。代码如下:
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#)
您可以通过否定布尔值来消除if/else语句:
ruleScreenActive = !ruleScreenActive;
我认为最好写:
ruleScreenActive ^= true;
这样就可以避免将变量名写两次。。。这可能导致错误
ruleScreenActive = !ruleScreenActive;
这将是内联的,因此可读性提高,运行时成本保持不变:
public static bool Invert(this bool val) { return !val; }
给予:
ruleScreenActive.Invert();
这对于长变量名非常有用。您不必将变量名写两次。
public static void Invert(this ref bool b) => b = !b;
示例:
bool superLongBoolVariableName = true;
superLongBoolVariableName.Invert()