【发布时间】:2021-09-09 23:59:27
【问题描述】:
protected virtual IEnumerator Lerp()
{
Debug.Log("BaseMethod");
while (true)
{
speed = startSpeed;
currentColor = SpriteRend.color;
float r = Random.Range(0f, 1f),
g = Random.Range(0f, 1f),
b = Random.Range(0f, 1f),
a = Random.Range(0f, 1f);
nextColor = new Color(r, g, b, a);
while (nextColor != (currentColor = Color.Lerp(currentColor, nextColor, speed * Time.deltaTime)))
{
if (AnyRgbValueReached())
{
speed += 2f;
}
SpriteRend.color = currentColor;
yield return null;
}
}
}
protected override IEnumerator Lerp()
{
if (IsFirst)
{
while (!Game.GameInstance.GameOver)
{
if (Recording)
{
Debug.Log("SubMethod");
yield return base.Lerp();
}
else
{
yield return null;
}
}
}
else
{
yield return new WaitForEndOfFrame();
while (!Game.GameInstance.GameOver)
{
SpriteRend.color = firstTop.GetComponent<SpriteRenderer>().color;
yield return null;
}
}
}
注意:这 2 个方法不在 1 个类中,它们在 2 个单独的类中。
问题在于 Debug.Log("BaseMethod"); Debug.Log("SubMethod"); 时不打印正在打印每一帧。为什么会这样?
【问题讨论】:
-
请将您的代码(的相关部分)复制到您的问题中,除非您可以保证链接的页面将至少在此问题存在期间可用可在线访问。否则,如果您的链接在未来某个时候失效,您的问题可能对未来的访问者毫无用处。