summaryrefslogtreecommitdiff
path: root/Assets/Scripts
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-10-02 18:46:26 +0800
committerchai <chaifix@163.com>2021-10-02 18:46:26 +0800
commit142b0b9264d9b8da81f173ec92d153d52f67ae06 (patch)
tree0dff442e6f7030fd9a60e9b2c08a24be97104c8f /Assets/Scripts
parentd9f2bb30c5d0eb8e8513a0e16e13e3c4f2af89e1 (diff)
*misc
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/Unit/Components/UnitLensEffect.cs8
-rw-r--r--Assets/Scripts/Unit/Components/UnitState/PCState.cs7
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffectBase.cs24
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs10
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs6
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs10
-rw-r--r--Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs10
-rw-r--r--Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs3
8 files changed, 37 insertions, 41 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitLensEffect.cs b/Assets/Scripts/Unit/Components/UnitLensEffect.cs
index 23539de0..e145c331 100644
--- a/Assets/Scripts/Unit/Components/UnitLensEffect.cs
+++ b/Assets/Scripts/Unit/Components/UnitLensEffect.cs
@@ -102,7 +102,7 @@ public partial class UnitLensEffect : UnitComponent
if (method == null)
continue;
eff.owner = owner;
- method.Invoke(eff, new object[] { LensEffectBase.EStage.Before, cb.Value });
+ method.Invoke(eff, new object[] { LensEffectBase.EStage.BeforeIterate, cb.Value });
// iterate unit renderers
for (int j = 0; j < body.renderers.Length; ++j)
@@ -114,7 +114,7 @@ public partial class UnitLensEffect : UnitComponent
method.Invoke(eff, new object[] { LensEffectBase.EStage.Iterate, cb.Value });
}
- method.Invoke(eff, new object[] { LensEffectBase.EStage.After, cb.Value });
+ method.Invoke(eff, new object[] { LensEffectBase.EStage.AfterIterate, cb.Value });
}
MainCamera.Instance.camera.AddCommandBuffer(ce, cb.Value);
}
@@ -125,7 +125,7 @@ public partial class UnitLensEffect : UnitComponent
if (m_Effects == null || m_Effects.Count == 0)
return;
- // 执行每个event的finish
+ // 执行每个event的finisher
foreach (var cb in m_InUseCommandBuffers)
{
ERenderingEvent re = cb.Key;
@@ -137,7 +137,7 @@ public partial class UnitLensEffect : UnitComponent
MethodInfo method = eff.GetType().GetMethod(re.ToString(), BindingFlags.Instance | BindingFlags.Public, null, new Type[] { typeof(LensEffectBase.EStage), typeof(CommandBuffer) }, null);
if (method == null)
continue;
- method.Invoke(eff, new object[] { LensEffectBase.EStage.Finished, cb.Value });
+ method.Invoke(eff, new object[] { LensEffectBase.EStage.FinishRender, cb.Value });
}
}
diff --git a/Assets/Scripts/Unit/Components/UnitState/PCState.cs b/Assets/Scripts/Unit/Components/UnitState/PCState.cs
index 22855aeb..6a326431 100644
--- a/Assets/Scripts/Unit/Components/UnitState/PCState.cs
+++ b/Assets/Scripts/Unit/Components/UnitState/PCState.cs
@@ -142,11 +142,14 @@ public partial class PCState : UnitState
{
float offset = owner.isTowardRight ? 1.5f : -1.5f;
+ Vector3 targetPos = TestErika.Instance.monster.owner.center + new Vector3(offset, -0.5f, 0);
+ targetPos.y = Mathf.Max(1, targetPos.y);
+
UnitSnapshotInfo info = owner.TakeSnapshot();
- Vector2 dir = TestErika.Instance.monster.owner.center + new Vector3(offset, -0.5f, 0) - owner.center;
+ Vector2 dir = targetPos - owner.center;
owner.unitLensEffect.Dash(Color.white, 0.1f, Mathf.Rad2Deg * Mathf.Atan2(dir.y, dir.x), info);
- owner.center = TestErika.Instance.monster.owner.center + new Vector3(offset, -0.5f, 0);
+ owner.center = targetPos;
TurnAround(!owner.isTowardRight);
return true;
}
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs b/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs
index 93981bfd..94e5f6a7 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffectBase.cs
@@ -14,10 +14,10 @@ public abstract class LensEffectBase
{
public enum EStage
{
- Before , // 迭代之前
- Iterate , // 迭代renderer
- After , // 迭代之后
- Finished, // 渲染角色之后(所有lens effect结束)
+ BeforeIterate, // 迭代之前
+ Iterate, // 迭代renderer
+ AfterIterate, // 迭代之后
+ FinishRender, // 渲染角色之后(所有lens effect结束)
}
public abstract ERenderingEvent renderingEvents { get; }
@@ -31,7 +31,7 @@ public abstract class LensEffectBase
public UnitController owner;
#endregion
- private static MaterialEntry _ClaimMaterial(string shader)
+ private static MaterialEntry ClaimMaterial(string shader)
{
List<MaterialEntry> mats;
if (m_MaterailPool.TryGetValue(shader, out mats) && mats.Count > 0)
@@ -47,7 +47,7 @@ public abstract class LensEffectBase
return entry;
}
- private static void _ReleaseMaterial(MaterialEntry entry)
+ private static void ReleaseMaterial(MaterialEntry entry)
{
List<MaterialEntry> mats;
if (!m_MaterailPool.TryGetValue(entry.shader, out mats))
@@ -58,24 +58,18 @@ public abstract class LensEffectBase
mats.Add(entry);
}
- protected MaterialEntry ClaimMaterial(string shader)
+ protected MaterialEntry GetTempMaterial(string shader)
{
- MaterialEntry entry = _ClaimMaterial(shader);
+ MaterialEntry entry = ClaimMaterial(shader);
m_InUseMaterials.Add(entry);
return entry;
}
- protected void ReleaseMaterial(MaterialEntry entry)
- {
- m_InUseMaterials.Remove(entry);
- _ReleaseMaterial(entry);
- }
-
protected void ReleaseAllInUsedMaterials()
{
for(int i = 0; i < m_InUseMaterials.Count; ++i)
{
- _ReleaseMaterial(m_InUseMaterials[i]);
+ ReleaseMaterial(m_InUseMaterials[i]);
}
m_InUseMaterials.Clear();
}
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
index 5260a751..db0c1956 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffect_BlurRim.cs
@@ -18,7 +18,7 @@ public class LensEffect_BlurRim : LensEffectBase
public override void AfterForwardOpaque(EStage stage, CommandBuffer cb)
{
- if (stage == EStage.Before)
+ if (stage == EStage.BeforeIterate)
{
Before(cb);
}
@@ -26,11 +26,11 @@ public class LensEffect_BlurRim : LensEffectBase
{
Iterate(cb);
}
- else if (stage == EStage.After)
+ else if (stage == EStage.AfterIterate)
{
After(cb);
}
- else if (stage == EStage.Finished)
+ else if (stage == EStage.FinishRender)
{
}
}
@@ -64,7 +64,7 @@ public class LensEffect_BlurRim : LensEffectBase
for (int i = 0; i < subMeshCount; ++i)
{
- MaterialEntry mat = ClaimMaterial(StaticDefine.shaders[EShader.SolidColor].name);
+ MaterialEntry mat = GetTempMaterial(StaticDefine.shaders[EShader.SolidColor].name);
mat.material.SetColor("_Color", rimColor);
mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
mat.material.SetTexture("_MainTex", curBodypartRenderer.renderer.sharedMaterial.GetTexture("_MainTex"));
@@ -74,7 +74,7 @@ public class LensEffect_BlurRim : LensEffectBase
void After(CommandBuffer cb)
{
- MaterialEntry blur = ClaimMaterial(StaticDefine.shaders[EShader.Blur].name);
+ MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.Blur].name);
Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, owner.center, owner.unitDetail.snapshotBound);
blur.material.SetVector("_UnitTileOffset", tileOffset);
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs
index 6aa06d01..252efc6e 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffect_Buzz.cs
@@ -15,11 +15,11 @@ public class LensEffect_Buzz : LensEffectBase
public override void AfterForwardAlpha(EStage stage, CommandBuffer cb)
{
- if (stage == EStage.Before)
+ if (stage == EStage.BeforeIterate)
{
Before(cb);
}
- else if (stage == EStage.After)
+ else if (stage == EStage.AfterIterate)
{
After(cb);
}
@@ -27,7 +27,7 @@ public class LensEffect_Buzz : LensEffectBase
void Before(CommandBuffer cb)
{
- MaterialEntry buzz = ClaimMaterial(StaticDefine.shaders[EShader.Buzz].name);
+ MaterialEntry buzz = GetTempMaterial(StaticDefine.shaders[EShader.Buzz].name);
cb.SetGlobalTexture("_UnitDepthTexture", owner.unitPreprocessing.unitDepthTexture);
cb.Blit(BuiltinRenderTextureType.CameraTarget, BuiltinRenderTextureType.CameraTarget, buzz.material);
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
index 0ff16e3a..d5d368d0 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs
@@ -28,15 +28,15 @@ public class LensEffect_Dash : LensEffectBase
public override void AfterForwardOpaque(EStage stage, CommandBuffer cb)
{
- if (stage == EStage.Before)
+ if (stage == EStage.BeforeIterate)
{
Before(cb);
}
- else if (stage == EStage.After)
+ else if (stage == EStage.AfterIterate)
{
After(cb);
}
- else if (stage == EStage.Finished)
+ else if (stage == EStage.FinishRender)
{
}
}
@@ -58,7 +58,7 @@ public class LensEffect_Dash : LensEffectBase
Quaternion rot = smr.rootBone.transform.rotation;
obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot);
- MaterialEntry mat = ClaimMaterial(StaticDefine.shaders[EShader.SolidColor].name);
+ 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"));
@@ -70,7 +70,7 @@ public class LensEffect_Dash : LensEffectBase
{
curTime += Time.deltaTime;
- MaterialEntry blur = ClaimMaterial(StaticDefine.shaders[EShader.MotionBlur].name);
+ MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.MotionBlur].name);
Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, trs.position, 6);
blur.material.SetVector("_UnitTileOffset", tileOffset);
diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs
index b76666ff..371186d0 100644
--- a/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs
+++ b/Assets/Scripts/Unit/LensEffect/LensEffect_MotionBlur.cs
@@ -15,7 +15,7 @@ public class LensEffect_MotionBlur : LensEffectBase
public override void AfterImageEffectsOpaque(EStage stage, CommandBuffer cb)
{
- if (stage == EStage.Before)
+ if (stage == EStage.BeforeIterate)
{
tempID = Shader.PropertyToID("_Temp1");
@@ -43,16 +43,16 @@ public class LensEffect_MotionBlur : LensEffectBase
for (int i = 0; i < subMeshCount; ++i)
{
- MaterialEntry mat = ClaimMaterial(StaticDefine.shaders[EShader.SolidColor].name);
+ MaterialEntry mat = GetTempMaterial(StaticDefine.shaders[EShader.SolidColor].name);
mat.material.SetColor("_Color", Color.red);
mat.material.SetMatrix("_ObjectToWorld", obj2Wod);
cb.DrawRenderer(curBodypartRenderer.renderer, mat.material, i);
}
}
- else if(stage == EStage.After)
+ else if(stage == EStage.AfterIterate)
{
- MaterialEntry blur = ClaimMaterial(StaticDefine.shaders[EShader.Blur].name);
+ MaterialEntry blur = GetTempMaterial(StaticDefine.shaders[EShader.Blur].name);
Vector4 tileOffset = RenderingUtility.GetTillingOffset(MainCamera.Instance.camera, owner.center, owner.unitDetail.snapshotBound);
blur.material.SetVector("_UnitTileOffset", tileOffset);
@@ -61,7 +61,7 @@ public class LensEffect_MotionBlur : LensEffectBase
tempID = Shader.PropertyToID("_Temp1");
cb.ReleaseTemporaryRT(tempID);
}
- else if(stage == EStage.Finished)
+ else if(stage == EStage.FinishRender)
{
}
}
diff --git a/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs b/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
index ca9f5405..cc352324 100644
--- a/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
+++ b/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
@@ -195,8 +195,7 @@ public partial class TimelineEventProxy
return;
UnitSnapshotInfo info = owner.TakeSnapshot();
- LensEffect_Dash dash = new LensEffect_Dash(Color.white, dashinfo.lifeTime, dashinfo.angle, info);
- owner.unitLensEffect.AddEffect(dash);
+ owner.unitLensEffect.Dash(Color.white, dashinfo.lifeTime, dashinfo.angle, info);
}
#endregion