我正在清理一些代碼,更多的是改進的動機。我有一個按鈕可以打開和關閉一些文本。它的工作原理是使用指針,點擊一個按鈕,淡出的所有項目,除了一個點:更改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--這正是我所追求的,並且有了一些修補,它幫助我學到了更多東西。我很感謝所有有幫助的評論 - 我相信每個人都會以某種方式幫助我,以進一步瞭解未來的發展。 –