我有一些检查,看看屏幕是否有效.代码如下所示:
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;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法 - 每当我点击按钮 - 反转的值ruleScreenActive
?
(这是Unity3D中的C#)
Ahm*_*eed 119
你可以通过否定bool的值来摆脱你的if/else语句:
ruleScreenActive = !ruleScreenActive;
Run Code Online (Sandbox Code Playgroud)
Jac*_*ack 33
我认为最好写:
ruleScreenActive ^= true;
Run Code Online (Sandbox Code Playgroud)
这样你就可以避免两次写变量名......这会导致错误
Jac*_*ack 11
这将是内联的,因此可读性增加,运行时成本保持不变:
public static bool Invert(this bool val) { return !val; }
Run Code Online (Sandbox Code Playgroud)
给:
ruleScreenActive.Invert();
Run Code Online (Sandbox Code Playgroud)