Advertisement
Staggart

Stylized Water 2 - Set custom time

Mar 1st, 2024 (edited)
817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.64 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. //An example of overriding the time-index used by the water shader, and the Buoyancy API.
  4. namespace StylizedWater2.Examples
  5. {
  6.     [ExecuteAlways]
  7.     public class SetWaterTimeOffset : MonoBehaviour
  8.     {
  9.         public enum Mode
  10.         {
  11.             None,
  12.             Interval,
  13.             Time,
  14.             EditorTime,
  15.             Custom
  16.         }
  17.  
  18.         public Mode mode = Mode.Custom;
  19.  
  20.         public float interval = 0.2f;
  21.         public float customTime = 0f;
  22.         private float elapsedTime;
  23.  
  24.         void Update()
  25.         {
  26.             if (mode == Mode.None)
  27.             {
  28.                 OnDisable();
  29.                 return;
  30.             }
  31.  
  32.             if (mode == Mode.Interval)
  33.             {
  34.                 elapsedTime += Time.deltaTime;
  35.  
  36.                 if (elapsedTime >= interval)
  37.                 {
  38.                     elapsedTime = 0;
  39.  
  40.                     StylizedWater2.WaterObject.CustomTime = Time.time;
  41.                 }
  42.             }
  43.  
  44.             if (mode == Mode.Time)
  45.             {
  46.                 StylizedWater2.WaterObject.CustomTime = Time.time;
  47.             }
  48.            
  49.             #if UNITY_EDITOR
  50.             if (mode == Mode.EditorTime)
  51.             {
  52.                 StylizedWater2.WaterObject.CustomTime = (float)UnityEditor.EditorApplication.timeSinceStartup;
  53.             }
  54.             #endif
  55.  
  56.             if (mode == Mode.Custom)
  57.             {
  58.                 StylizedWater2.WaterObject.CustomTime = customTime;
  59.             }
  60.         }
  61.  
  62.         private void OnDisable()
  63.         {
  64.             //Revert to using normal time
  65.             StylizedWater2.WaterObject.CustomTime = -1;
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement