projectEli/Assets/Inventory System/ICWM Assets/Inventory/Scripts/Utility/ButtonPulse.cs

50 lines
2.0 KiB
C#
Raw Normal View History

2022-10-08 02:26:09 +00:00
//********************************************************//
// //
// Copyright © All rights reserved. MyNameIsVoo. 2020. //
// //
// COPYING FORBIDEN //
// //
//********************************************************//
using UnityEngine;
using UnityEngine.UI;
namespace ICWM
{
namespace Utility
{
public class ButtonPulse : MonoBehaviour
{
[Header("ATTRIBUTES")]
[SerializeField] private float speedPulse = 0.6f; // Скорость пульсации (частота)
private Color defColor; // Дефолтный цвет (базовый) будем работать с ним
private int k = 1; // Переменная меняющая направления изменения цвета\канала альфа
private void Start()
{
defColor = GetComponent<Image>().color;
defColor.a = 1.0f; // Альфа изменяется от 0 до 1
}
private void Update()
{
defColor.a = defColor.a - Time.deltaTime * speedPulse * k; // Изменяем значение альфа (уменьшаем и увеличиваем) - зависит от времени и k
if (defColor.a <= 0.6f) // Нижний предел альфа
k = -1;
else if (defColor.a >= 1.0f) // Верхний предел альфа
k = 1;
GetComponent<Image>().color = defColor; // Применяем цвет
}
public void StopPulse() // Метод остановки пульсации и восстановления цвета
{
defColor.a = 1.0f;
GetComponent<Image>().color = defColor;
}
}
}
}