BITFALL/Assets/Artists/Scripts/Feel/EntityHealthBlender.cs

32 lines
675 B
C#

using System.Collections;
using System.Collections.Generic;
using BITKit;
using BITKit.Entities;
using UnityEngine;
namespace BITFALL.Feel
{
public sealed class EntityHealthBlender : EntityBehavior
{
[SerializeField] private Renderer[] _renderers;
[Inject] private IHealth _health;
private static readonly int Blend = Shader.PropertyToID("_Blend");
public override void OnAwake()
{
base.OnAwake();
_health.OnSetHealthPoint += OnSetHealthPoint;
}
private void OnSetHealthPoint(int obj)
{
var blend =1- Mathf.Clamp01(obj / (float)_health.MaxHealthPoint);
foreach (var x in _renderers)
{
x.material.SetFloat(Blend, blend);
}
}
}
}