Я пытаюсь постепенно изменять значения RGB Color32 компонента Unity Renderer с течением времени, но всякий раз, когда я играю в игру в Unity, программа просто зависает, и мне приходится закрыть ее. Я уверен, что это из-за того, как я пытаюсь его изменить, но я не знаю, где я ошибаюсь. Любая помощь будет принята с благодарностью. Спасибо.
void degradeGradually(Renderer ren){
float time = Time.time;
Color32 col;
while(((Color32)ren.material.color).r > 89f){
if (Time.time - time > .025f) {
time = Time.time;
col = new Color32 ((byte)(((Color32)ren.material.color).r - 1f), (byte)(((Color32)ren.material.color).g - 1f), (byte)(((Color32)ren.material.color).b - 1f), 255);
ren.material.color = col;
}
}
}
degradeGradually
из обновления ... ваш вызов блокирует поток обновления ...Time.time
никогда не изменяется ... просто заменитеwhile
наif
и сделайтеfloat time = Time.time;
полем - person Selvin   schedule 07.11.2018