我正在尝试在godot中创建3D游戏,我一直想知道如何创建昼夜循环。我假设我会使用着色器,但我没有找到关于这个主题的资源。我的想法是像太阳一样有定向光,但从那里我不知道该去哪里。我怎么知道天空什么时候应该是某种颜色?
提前谢谢你。
这是一个非常广泛的主题,因此整体上不太适合堆栈溢出问题。我将专注于问题的最后一部分("我怎么知道天空什么时候应该是某种颜色"(,因为这是一个重点突出的问题。您将不得不自己弄清楚其余的(定向光当然是一种选择(。
戈多不会为你保留时间。但是您可以在 _process 函数的 delta 参数中获取当前帧的长度。您可以汇总每一帧的增量值,从而为您提供自游戏开始以来的实际秒数。
通常,游戏中的时间比现实世界中过得更快。您需要确定一个指定速度的因素。如果将汇总的增量时间除以此系数,则可以得到自游戏开始以来的游戏内秒数。将该模数取为游戏内一天中的游戏内秒数,您就有了一天中的时间。
如何将一天中的时间映射到天空颜色再次取决于您。