我想问一下是否有一个内置的C#语句允许我用更少的代码行编写以下内容:
float fH = Input.GetAxis("Horizontal"); //doesn't really matter where this comes from, but in this case, it's the user's input on a joystick
if (fH < 0)
{
fH = -1;
}
else if (fH > 0)
{
fH = 1;
}
else
{
//don't change anything
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我不能用
fH = if(...)
Run Code Online (Sandbox Code Playgroud)
因为这只允许2个案例,而我需要3个案例(小于0,大于0或0).
Math.Sign将返回输入是正数,负数还是0,只有一个语句(根本不需要if).
Math.Sign(-2)
-1
Math.Sign(-3.3)
-1
Math.Sign(3)
1
Math.Sign(0)
0
Run Code Online (Sandbox Code Playgroud)
它返回一个int32,您可以像往常一样重新分配给您float.
fH = Math.Sign(fH);