Reminded208
@Reminded208
Unity и веб разработчик

Как заставить 2д спрайт мерцать белым или менять оттенок?

Хочется сделать реакцию спрайта врага на удар игроком. Есть спрайт врага. Как сделать чтобы спрайт по команде мерцал белым? Или применить к примеру цветовую инверсию (а потом вернуть обратно). В общем изголяться над спрайтами и так и сяк программно в риалтайме)
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Entiogen
Самый простой вариант.
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;
    }
}
Ответ написан
GavriKos
@GavriKos Куратор тега Unity
В общем изголяться над спрайтами и так и сяк программно в риалтайме)

Шейдером.

И то и то можно шейдером сделать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы