using UnityEngine;

namespace AllIn1SpriteShader
{
    //This script is made with Unity version 2019 and onward in mind
    //If you are in Unity 2018 or previous you probably want to use SetGlobalTimeUnity2018.cs instead
    
    //This script will pass in the Unscaled Time to the shader to animate the effects even when the game is paused
    //Set shaders to Scaled Time variant and add this script to an active GameObject to see the results
    //Video tutorial about it: https://youtu.be/7_BggIufV-w
    [ExecuteInEditMode]
    public class SetGlobalTimeNew : MonoBehaviour
    {
        int globalTime;

        void Start()
        {
            globalTime = Shader.PropertyToID("globalUnscaledTime");
        }

        void Update()
        {
            Shader.SetGlobalFloat(globalTime, Time.unscaledTime / 20f);
        }
    }
}