diff options
Diffstat (limited to 'Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs')
-rw-r--r-- | Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs deleted file mode 100644 index d5d368d0..00000000 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; - -public class LensEffect_Dash : LensEffectBase -{ - public override ERenderingEvent renderingEvents => ERenderingEvent.AfterForwardOpaque; - - Color rimColor; - int tempID; - float lifeTime;
- UnitSnapshot snapshot;
- TRS trs;
- float angle;
-
- float curTime = 0;
-
- public LensEffect_Dash(Color color, float lifeTime, float angle, UnitSnapshotInfo snapshot) : base() - { - rimColor = color; - tempID = Shader.PropertyToID("RT_Dash"); - this.lifeTime = lifeTime;
- trs = snapshot.trs;
- this.snapshot = UnitManager.Instance.ClaimSnapshotSolo(snapshot);
- this.angle = angle;
- } - - public override void AfterForwardOpaque(EStage stage, CommandBuffer cb) - { - if (stage == EStage.BeforeIterate) - { - Before(cb); - } - else if (stage == EStage.AfterIterate) - { - After(cb); - } - else if (stage == EStage.FinishRender) - { - } - } - - void Before(CommandBuffer cb) - {
- cb.GetTemporaryRT(tempID, -1, -1, 24, FilterMode.Bilinear); - cb.SetRenderTarget(tempID); - cb.ClearRenderTarget(true, true, new Color(0, 0, 0, 0));
-
- // renderer
- snapshot.transform.position = trs.position;
- snapshot.transform.rotation = trs.rotation;
- snapshot.transform.localScale = trs.scale;
-
- Matrix4x4 obj2Wod = Matrix4x4.identity;
- SkinnedMeshRenderer smr = snapshot.renderers[0] as SkinnedMeshRenderer;
- Vector3 pos = smr.rootBone.transform.position;
- Quaternion rot = smr.rootBone.transform.rotation;
- obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot);
-
- MaterialEntry mat = GetTempMaterial(StaticDefine.shaders[EShader.SolidColor].name);
- mat.material.SetColor("_Color", rimColor);
- mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
- mat.material.SetTexture("_MainTex", snapshot.renderers[0].sharedMaterial.GetTexture("_MainTex"));
-
- cb.DrawRenderer(snapshot.renderers[0], mat.material);
- } - - void After(CommandBuffer cb) - {
- curTime += Time.deltaTime;
-
- MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.MotionBlur].name); - - Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, trs.position, 6);
- blur.material.SetVector("_UnitTileOffset", tileOffset);
- blur.material.SetFloat("_Angle", angle);
- blur.material.SetFloat("_AlphaMultiplier", Mathf.Clamp(1 - curTime / lifeTime, 0, 1));
-
- cb.Blit(tempID, BuiltinRenderTextureType.CameraTarget, blur.material); - cb.ReleaseTemporaryRT(tempID); - }
-
- public override bool CanDestroy()
- {
- return curTime > lifeTime;
- }
-
- public override void OnDestroy()
- {
- UnitManager.Instance.ReleaseSnapshot(ref snapshot);
- }
- -}
\ No newline at end of file |