У материала должно быть поле _Color.
Создешь скрипт который будет менять значение цвета через "material.SetColor()" (если не ошибаюсь).
public class MyCode
{
[SerializedField] private Color _color = Color.red;
// Соединяешь материал что используется в MeshRenderer (из ресурсы).
[SerializedField] private Material _mat;
public void TakeDamage()
{
// ...
// блаблабла
// ...
StartCoroutine(ChangeColor());
}
private IEnumerator ChangeColor()
{
float speed = 5;
// Изменение с белого на красный
for(float t = 0; t < 1; t += Time.deltaTime * speed)
{
_mat.SetColor("_Color", Color.Lerp(Color.white, _color, t));
yield return null;
}
// И обратно.
for(float t = 0; t < 1; t += Time.deltaTime * speed)
{
_mat.SetColor("_Color", Color.Lerp(_color, Color.white, t));
yield return null;
}
}
}