我正在清理一些代码,更多的是改进的动机。我有一个按钮可以打开和关闭一些文本。它的工作原理是使用指针,点击一个按钮,淡出的所有项目,除了一个点:更改C#Unity中函数内if语句的条件
public void OnHideClick()
{
AllText.Remove(this.gameObject);
if (newSwitchOne)
{
for (int i = 0; i < 3; i++)
{
switchOn = true;
}
}
else if (newSwitchTwo)
{
for (int i = 0; i < 3; i++)
{
switchOff = true;
}
}
}
更新运行取决于什么布尔是真实的行动,而忽略了虚假的版本。这工作正常。
void Update()
{
if (switchOn)
{
for (int j = 0; j < 4; j++)
{
TextMesh TextColor = AllText[j].GetComponent<TextMesh>();
TextColor.color = Color.Lerp(TextColor.color, new Color(255, 255, 255, 0), 0.0075f * Time.time);
if (TextColor.color.a <= 0.023f)
{
TextColor.color = new Color(255, 255, 255, 0);
if (TextColor.color.a == 0.0f)
{
switchOn = false;
switchOff = false;
newSwitchOne = false;
newSwitchTwo = true;
}
}
}
}
if (switchOff)
{
for (int j = 0; j < 4; j++)
{
TextMesh TextColor = AllText[j].GetComponent<TextMesh>();
TextColor.color = Color.Lerp(TextColor.color, new Color(255, 255, 255, 1), 0.005f * Time.time);
if (TextColor.color.a >= 0.977f)
{
TextColor.color = new Color(255, 255, 255, 1);
if (TextColor.color.a == 1.0f)
{
switchOn = false;
switchOff = false;
newSwitchOne = true;
newSwitchTwo = false;
}
}
}
}
}
我想清理这段代码。我很熟悉函数和CoRoutines,并且通过查看类似的代码来判断switchOn,如果switchOff我想知道是否可以通过传递一些值作为参数来清除它。我曾尝试这样做,似乎都与测试color.alpha的值,例如if语句的条件难度:
if (TextColor.color.a >= 0.977f)
我知道sys.action,但这似乎并没有发挥球。据我所知告诉我相信改变小于或大于符号'<','>'作为参数 帮助。我做了一些搜索 - 但没有找到太多的帮助我。也许看着错误的方向。
任何人都可以为我阐明这一点吗?
谢谢Everts--这正是我所追求的,并且有了一些修补,它帮助我学到了更多东西。我很感谢所有有帮助的评论 - 我相信每个人都会以某种方式帮助我,以进一步了解未来的发展。 –