|
|
@@ -17,11 +17,24 @@ public class BeHitTrigger : MonoBehaviour
|
|
|
private bool isWhite;
|
|
|
private float white;
|
|
|
|
|
|
+ public List<Material> mats;
|
|
|
+
|
|
|
private void Awake()
|
|
|
{
|
|
|
owner = GetComponentInParent<Character>();
|
|
|
+ mats = new List<Material>();
|
|
|
}
|
|
|
|
|
|
+ private void CountTurnWhiteMaterials()
|
|
|
+ {
|
|
|
+ foreach (Material m in owner.meshRenderer.materials)
|
|
|
+ {
|
|
|
+ if (m.shader.name.Contains("Fill"))
|
|
|
+ {
|
|
|
+ mats.Add(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
public void BeHit(int damage)
|
|
|
{
|
|
|
owner.BeHit(damage);
|
|
|
@@ -38,20 +51,21 @@ public class BeHitTrigger : MonoBehaviour
|
|
|
//敌方士兵受到起手式伤害/我方士兵受到伤害
|
|
|
if (isDemSummon || owner.GetComponent<Demonic>())
|
|
|
{
|
|
|
- try
|
|
|
- {
|
|
|
- TurnWhite();
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- }
|
|
|
+ TurnWhite();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void TurnWhite()
|
|
|
{
|
|
|
- owner.meshRenderer.material.SetFloat("_FillPhase", 0.6f);
|
|
|
- Invoke("TurnOrigColor", 0.1f);
|
|
|
+ if (mats.Count == 0)
|
|
|
+ {
|
|
|
+ CountTurnWhiteMaterials();
|
|
|
+ }
|
|
|
+ foreach(Material m in mats)
|
|
|
+ {
|
|
|
+ m.SetFloat("_FillPhase", 0.6f);
|
|
|
+ Invoke("TurnOrigColor", 0.1f);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void TurnOrigColor()
|
|
|
@@ -65,7 +79,10 @@ public class BeHitTrigger : MonoBehaviour
|
|
|
if (isWhite)
|
|
|
{
|
|
|
white -= 4f * Time.deltaTime;
|
|
|
- owner.meshRenderer.material.SetFloat("_FillPhase", white);
|
|
|
+ foreach(Material m in mats)
|
|
|
+ {
|
|
|
+ m.SetFloat("_FillPhase", white);
|
|
|
+ }
|
|
|
if (white <= 0)
|
|
|
{
|
|
|
isWhite = false;
|