我在网上看到了这个,我想不出这是关于什么的:
他们创建了名为障碍的布尔值并将其设置为false.
public bool obstacles = false;
Run Code Online (Sandbox Code Playgroud)
但是,这条线是什么:
obstacles = obstacles ? false : true;
if (obstacles)
{
transform.renderer.material.color = new Color(.5f, .5f, 0.0f);
}
else
{
transform.renderer.material.color = Color.white;
}
Run Code Online (Sandbox Code Playgroud)
我知道if和else功能,当有障碍物时,将材料转换为指定的颜色,或者如果没有障碍物,将材料变成白色.但是,这条线是什么:障碍=障碍?false:是的;
谢谢..抱歉这个新手问题.
?:
这称为三元运算符
条件运算符(?:)根据布尔表达式的值返回两个值中的一个.以下是条件运算符的语法.
条件?first_expression:second_expression;
备注
条件必须评估为真或假.如果condition为true,则计算first_expression并成为结果.如果condition为false,则计算second_expression并成为结果.只评估两个表达式中的一个.
first_expression和second_expression的类型必须相同,或者从一种类型到另一种类型必须存在隐式转换.
MSDN的例子清楚地说明了这一点:
int input = Convert.ToInt32(Console.ReadLine());
string classify;
// if-else construction.
if (input < 0)
classify = "negative";
else
classify = "positive";
// ?: conditional operator.
classify = (input < 0) ? "negative" : "positive";
Run Code Online (Sandbox Code Playgroud)
正如Steeve正确指出的那样,您可以尝试使用if else语句来完成您想要完成的任务:
if (!obstacles)
{
transform.renderer.material.color = new Color(.5f, .5f, 0.0f);
obstacles = true;
}
else
{
transform.renderer.material.color = Color.white;
obstacles = false;
}
Run Code Online (Sandbox Code Playgroud)