123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System;
- using UnityEngine;
- namespace Xft
- {
- public class RadialBlurTexAddEvent : CameraEffectEvent
- {
- public RadialBlurTexAddEvent(XftEventComponent owner) : base(CameraEffectEvent.EType.RadialBlurMask, owner)
- {
- this.RadialBlurShader = owner.RadialBlurTexAddShader;
- this.Mask = owner.RadialBlurMask;
- }
- public Material MyMaterial
- {
- get
- {
- if (this.m_material == null)
- {
- this.m_material = new Material(this.RadialBlurShader);
- this.m_material.hideFlags = HideFlags.HideAndDontSave;
- }
- return this.m_material;
- }
- }
- public override bool CheckSupport()
- {
- bool result = true;
- if (!SystemInfo.supportsImageEffects)
- {
- result = false;
- }
- if (!this.MyMaterial.shader.isSupported)
- {
- result = false;
- }
- return result;
- }
- public override void OnRenderImage(RenderTexture source, RenderTexture destination)
- {
- if (this.m_material == null)
- {
- return;
- }
- this.MyMaterial.SetTexture("_Mask", this.Mask);
- this.MyMaterial.SetFloat("_SampleDist", this.m_owner.RBMaskSampleDist);
- this.MyMaterial.SetFloat("_SampleStrength", this.m_strength);
- Graphics.Blit(source, destination, this.m_material);
- }
- public override void Update(float deltaTime)
- {
- this.m_elapsedTime += deltaTime;
- if (this.m_owner.RBMaskStrengthType == MAGTYPE.Fixed)
- {
- this.m_strength = this.m_owner.RBMaskSampleStrength;
- }
- else if (this.m_owner.RBMaskStrengthType == MAGTYPE.Curve_OBSOLETE)
- {
- this.m_strength = this.m_owner.RBMaskSampleStrengthCurve.Evaluate(this.m_elapsedTime);
- }
- else
- {
- this.m_strength = this.m_owner.RBMaskSampleStrengthCurveX.Evaluate(this.m_elapsedTime);
- }
- }
- protected float m_strength;
- protected Material m_material;
- public Shader RadialBlurShader;
- public Texture2D Mask;
- }
- }
|