summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs')
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs42
1 files changed, 7 insertions, 35 deletions
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
index 9111bd68..24a62264 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
@@ -10,13 +10,16 @@ public class LensEffect_Dash : LensEffectBase
Color rimColor;
int tempID;
float lifeTime;
- UnitSnapshot snapshot;
-
- public LensEffect_Dash(Color color, float lifeTime) : base()
+ UnitSnapshot snapshot;
+ TRS trs;
+
+ public LensEffect_Dash(TRS trs, Color color, float lifeTime, UnitSnapshotInfo snapshot) : base()
{
rimColor = color;
tempID = Shader.PropertyToID("_BlurRim_RT0");
this.lifeTime = lifeTime;
+ this.snapshot = UnitManager.Instance.ClaimSnapshotSolo(snapshot);
+ this.trs = trs;
}
public override void AfterForwardOpaque(EStage stage, CommandBuffer cb)
@@ -25,10 +28,6 @@ public class LensEffect_Dash : LensEffectBase
{
Before(cb);
}
- else if (stage == EStage.Iterate)
- {
- Iterate(cb);
- }
else if (stage == EStage.After)
{
After(cb);
@@ -43,36 +42,9 @@ public class LensEffect_Dash : LensEffectBase
cb.GetTemporaryRT(tempID, -1, -1, 24, FilterMode.Bilinear);
cb.SetRenderTarget(tempID);
cb.ClearRenderTarget(true, true, new Color(0, 0, 0, 0));
- }
- void Iterate(CommandBuffer cb)
- {
- Matrix4x4 obj2Wod = Matrix4x4.identity;
- int subMeshCount = 0;
- if (curBodypartRenderer.renderer is SkinnedMeshRenderer)
- {
- SkinnedMeshRenderer smr = curBodypartRenderer.renderer as SkinnedMeshRenderer;
- Vector3 pos = smr.rootBone.transform.position;
- Quaternion rot = smr.rootBone.transform.rotation;
- obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot);
- obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod;
- subMeshCount = smr.sharedMesh.subMeshCount;
- }
- else if (curBodypartRenderer.renderer is MeshRenderer)
- {
- obj2Wod = curBodypartRenderer.renderer.transform.localToWorldMatrix;
- obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod;
- subMeshCount = curBodypartRenderer.renderer.GetComponent<MeshFilter>().sharedMesh.subMeshCount;
- }
+ // renderer
- for (int i = 0; i < subMeshCount; ++i)
- {
- MaterialEntry mat = ClaimMaterial(StaticDefine.shaders[EShader.SolidColor].name);
- mat.material.SetColor("_Color", rimColor);
- mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
- mat.material.SetTexture("_MainTex", curBodypartRenderer.renderer.sharedMaterial.GetTexture("_MainTex"));
- cb.DrawRenderer(curBodypartRenderer.renderer, mat.material, i);
- }
}
void After(CommandBuffer cb)