void Init(Light l, CB_WorkerBase w, LightAniParams p) { p.startIntensity = l.intensity; p.startIntensityCB = w.matParams [0].internsity; l.intensity = 0; w.matParams [0].internsity = 0; }
void Show(Light l, CB_WorkerBase w, LightAniParams p) { if (p.activeTime < 0) { p.activeTime = Time.time; } }
void UpdateIntensity(Light l, CB_WorkerBase w, LightAniParams p) { float intensityMod = 0; if (Time.time - p.activeTime < durationAppear) { intensityMod = curveAppear.Evaluate((Time.time - p.activeTime) / durationAppear); SetLightsIntensity(l, w, p, intensityMod, 1, 1); } else { float t = Time.time - p.activeTime; intensityMod = curve.Evaluate(t * 1 / duration); SetLightsIntensity(l, w, p, intensityMod, amplitude, amplitudeWorker); } }
// Use this for initialization void Start() { if (!FSManager.IsON) { return; } lightParams = new List <LightAniParams> (); for (int i = 0; i < lights.Count; i++) { var p = new LightAniParams(); lightParams.Add(p); var l = lights [i]; var w = workers [i]; Init(l, w, p); } }
void SetLightsIntensity(Light l, CB_WorkerBase w, LightAniParams p, float intensityMod, float amplitude, float amplitudeWorker) { l.intensity = p.startIntensity * Mathf.Lerp(1, intensityMod, amplitude); w.matParams[0].internsity = p.startIntensityCB * Mathf.Lerp(1, intensityMod, amplitudeWorker); w.MatSyncAll(); }