Самый простой вариант.
using UnityEngine;
public class ColorOfFraction : MonoBehaviour
{
private SpriteRenderer csSpriteRenderer;//Создаем ссылку типа SpriteRenderer.
float time = 0.5f;//Время на которое экземпляр меняет цвет при ударе.
Color harmColor = new Color(0.8f, 1f, 0.8f);//Свой вариант цвета. Настройка оттвенка.
void Start()
{
csSpriteRenderer = GetComponent<SpriteRenderer>();//Кешируем. Получаем доступ к компоненту SpriteRenderer на данном объекте.
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.T))//Чисто для теста. При нажатии кнопки T будет произведен эффект.
{
Harm();
}
}
private void OnCollisionEnter2D(Collision2D collision)//Метод проверяющий столкновение. В данном случае для 2d и проверка толко первичное столкновение.
{
Harm();
}
private void Harm()
{
csSpriteRenderer.color = Color.red;//Меняем цвет спрайта с белого на красный. red можно заменить на harmColor.
Invoke("RandomTurns", time);//Запуск метода DefaultColor() который вернет спрайту белый цвет.
}
private void DefaultColor()//Сам метод.
{
csSpriteRenderer.color = Color.white;
}
}