不幸的是,我的协同程序并没有完全播放。它应该淡入淡出一个对象,所以它的alpha为0。但是淡入到.039。
pandoc -t mediawiki --bibliography=allbooks.bib --csl=chicago-author-date.csl --metadata link-citations 1.tex -o 2.wiki
答案 0 :(得分:1)
这看起来像是“正确”的行为,因为您的ElapsedTime将比TotalTime大,然后您将获得的alpha值为0(或lerp值为1)。
->帧x ElapsedTime为0.97,lerp值为0.97。
->帧x + 1的经过时间可能已经是1.1,所以您将跳出循环。
只需在循环后添加以下代码:
fluidpef.GetComponent<Renderer>().material.color = Color.Lerp(new
Color(1f, 1f, 1f, 1f), new Color(1f, 1f, 1f, 0f), 1);
答案 1 :(得分:1)
while
条件就是为什么alpha值不会减小到0的原因。ElapsedTime < TotalTime
意味着循环ElapsedTime / TotalTime
永远不会等于1,这意味着alpha值将不会等于1。不为0。
要解决该问题,我将更改条件以检查材质的alpha值:
public IEnumerator colorlerpin7()
{
float ElapsedTime = 0.0f;
float TotalTime = 1f;
Renderer matRenderer = fluidpef.GetComponent<Renderer>();
while (matRenderer.material.color.a > 0.0f)
{
ElapsedTime += Time.deltaTime;
matRenderer.material.color = Color.Lerp(new
Color(1f, 1f, 1f, 1f), new Color(1f, 1f, 1f, 0f), (ElapsedTime /
TotalTime);
yield return null;
}
}