在 Unity3D c# 中每 10 秒更改一次相机颜色

Change camera color after every 10 sec in Unity3D c#

我想统一更改相机颜色,我知道如何在脚本中更改一次 camera.backgroundColor = Color.red;

但是如何在每 10 秒间隔后更改它,是否有任何定时器可以在特定时间后调用。

谢谢

你可以使用定时器,

Timer tm = new Timer(ChangeColor, cameraObject, 0, 1000);
    private void ChangeColor(object camera)
    {
        //camera is your camera object
        if (camera != null)
        {
            camera.backgroundColor = Color.red;
        }
    }

您也可以将颜色作为参数传递给 ChangeColor 方法以设置所需的颜色。

Timer tm = new Timer(ChangeColor, color, 0, 1000);
        private void ChangeColor(object color)
        {   
            Color backColor = color as Color;
            // camera is member variable
            if (color!= null)
            {
                camera.backgroundColor = backColor ;
            }
        }

或者您也可以将相机对象和颜色都作为元组传递。

您可以使用 Timer,但我会在您的 Update() 方法中使用一个简单的条件来解决它:

float elapsedTime;

void Update()
{
    elapsedTime += Time.deltaTime;

    if (elapsedTime >= 10)
    {
        elapsedTime -= 10;
        // insert logic for changing color below:
        camera.backgroundColor = Color.red;
    }
}

在我看来,这样更容易使用。