首页 > 解决方案 > Unity Shader Graph:如何从时间节点加快时间?

问题描述

我正在尝试使用时间节点的正弦时间输出,但我希望它更快。

如果这是在 Unity c# 中完成的,我会尝试这样的事情

totalTime += Time.deltaTime * speed;

value = Mathf.PingPong(totalTime, 1);

但我不能在 Shader Graph 中执行此操作。如何解决这个问题呢?

EDIT1:我也尝试创建自定义节点功能,但这会导致错误。

static string PingPongFunction(
    [Slot(0, Binding.None)] Vector1 t,
    [Slot(1, Binding.None)] Vector1 length,
    [Slot(2, Binding.None)] out Vector1 Out)
{
    return
        @"
            {
                Out = Mathf.PingPong(t, length);
            }
        ";
}

标签: unity3dshader

解决方案


将时间作为 x 馈送到 sin(x) 并将时间乘以一个数字以加快速度。

在此处输入图像描述


推荐阅读