Ответы пользователя по тегу Unity
  • Как заставить 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;
        }
    }
    Ответ написан
    1 комментарий