void Show(Light l, CB_WorkerBase w, LightAniParams p) { if (p.activeTime < 0) { p.activeTime = Time.time; } }
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 AddWorkerBuff(CB_WorkerBase worker) { var stage = worker.stage; if (!bufDic.ContainsKey(stage)) { bufDic.Add(stage, new CommandBuffer()); cam.AddCommandBuffer(stage, bufDic[stage]); } }
public void RemoveWorker(CB_WorkerBase worker) { if (worker == null) { return; } if (worker.cameraIndex < cams.Count) { cams [worker.cameraIndex].RemoveWorker(worker); } }
public void RemoveWorker(CB_WorkerBase worker) { if (worker == null) { return; } if (workers.Contains(worker)) { workers.Remove(worker); } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); worker = (CB_WorkerBase)target; GUILayout.Space(50); GUILayout.Label("[材质参数]"); for (int i = 0; i < worker.mats.Count; i++) { ShowParams("Mats " + i, worker.matParams [i], worker.mats [i], worker); } }
public void AddWorker(CB_WorkerBase worker) { if (worker == null) { return; } worker.SetCamManager(this); if (!workers.Contains(worker)) { workers.Add(worker); } AddWorkerBuff(worker); }
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); } }
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(); }