private void HandleRadialBlur() { if (_currentPostEffectProxy == null) { return; } if (_radialBlurFadeInStartTime >= 0) { float currentTime = Time.time; if (currentTime > _radialBlurFadeOutEndTime) { _radialBlurFadeInStartTime = -1; _currentPostEffectProxy.RadialBlurEnabled = false; _currentPostEffectProxy = null; } else { if (currentTime >= _radialBlurFadeInStartTime && currentTime <= _radialBlurFadeInEndTime) { float f = Mathf.InverseLerp(_radialBlurFadeInStartTime, _radialBlurFadeInEndTime, currentTime); _currentPostEffectProxy.RadialBlurWidth = Mathf.Lerp(0, MAX_RB_BLUR_SPREAD, f); _currentPostEffectProxy.RadialBlurRange = Mathf.Lerp(0, MAX_RB_BLUR_RANGE, f); } else if (currentTime >= _radialBlurFadeOutStartTime && currentTime <= _radialBlurFadeOutEndTime) { float f = Mathf.InverseLerp(_radialBlurFadeOutStartTime, _radialBlurFadeOutEndTime, currentTime); _currentPostEffectProxy.RadialBlurWidth = Mathf.Lerp(MAX_RB_BLUR_SPREAD, 0, f); _currentPostEffectProxy.RadialBlurRange = Mathf.Lerp(MAX_RB_BLUR_RANGE, 0, f); } else { _currentPostEffectProxy.RadialBlurWidth = MAX_RB_BLUR_SPREAD; _currentPostEffectProxy.RadialBlurRange = MAX_RB_BLUR_RANGE; } } } if (_saturationChangeEndTime >= 0) { if (Time.time < _saturationChangeEndTime) { _currentPostEffectProxy.Saturation += _saturationChangeSpeed * Time.deltaTime; } else { _currentPostEffectProxy.Saturation = _saturation; if (_saturation == 1) { _currentPostEffectProxy.SaturationEnable = false; } _saturationChangeEndTime = -1; } } }
public void RevertAllPostEffects(Camera cam) { PostEffectProxy postEffectProxy = GetPostEffectProxy(cam); if (postEffectProxy != null) { postEffectProxy.RevertAllEffects(); } }
public void DisableAllPostEffects(Camera cam) { PostEffectProxy postEffectProxy = GetPostEffectProxy(cam); if (postEffectProxy != null) { postEffectProxy.DisableAllEffects(); } }
public void SetVignettingEnabled(bool enable, Camera cam) { if (enable) { PostEffectProxy postEffectProxy = CreatePostEffectProxy(cam); postEffectProxy.VignettingEnabled = true; } else { PostEffectProxy postEffectProxy = GetPostEffectProxy(cam); if (postEffectProxy != null) { postEffectProxy.VignettingEnabled = false; } } }
public void SetDOFEnabled(bool enable, Camera cam, float focalDistance = 2, float Smoothness = 0.01f, float BlurWidth = 1) { if (enable) { PostEffectProxy postEffectProxy = CreatePostEffectProxy(cam); postEffectProxy.DOFEnabled = true; postEffectProxy.DOFFocalDistance = focalDistance; postEffectProxy.DOFSmoothness = Smoothness; postEffectProxy.DOFBlurWidth = BlurWidth; } else { PostEffectProxy postEffectProxy = GetPostEffectProxy(cam); if (postEffectProxy != null) { postEffectProxy.DOFEnabled = false; } } }
void SetCurrentProxy(Camera cam) { PostEffectProxy postEffectProxy = CreatePostEffectProxy(cam); _currentPostEffectProxy = postEffectProxy; }