Доброго времени суток.
Имеется кнопка и окно. При нажатии на кнопку окно меняет свою прозрачность. Как сделать так, чтобы изменение степени прозрачности было плавным?
public GameObject AlphaObj;
public Image AlphaImage;
private int AlphaCheck = 0;
void Update()
{
AlphaImage = AlphaObj.GetComponent<Image>();
}
public void OpenClose()
{
if (AlphaCheck == 0)
{
AlphaImage.color = new Color(AlphaImage.color.r, AlphaImage.color.g, AlphaImage.color.b, AlphaImage.color.a + 1.0f);
AlphaCheck = 1;
}
else
{
AlphaImage.color = new Color(AlphaImage.color.r, AlphaImage.color.g, AlphaImage.color.b, AlphaImage.color.a - 1.0f);
AlphaCheck = 0;
}
}
Как вариант, могу запихнуть смену прозрачности в Update с добавлением Time.deltaTime, а в OpenClose оставить смену проверочного значения. Но, быть может, есть вариант без перегрузки такой мелочью Update'а.
AlphaImage = AlphaObj.GetComponent<Image>();
сильно влияет на производительность если делать это не в Start()
или Awake()
. И тем более это безсмысленно делать на каждом кадре в апдейте.Для твоей задачи я советую использовать библиотеку LeanTween или ее аналоги вроде iTween. Там очень много полезных штук, в том числе и плавное изменение параметров. Например так:
var time = 2.0f;
var alphaVal = 0.0f;
LeanTween.alpha(gameObject, alphaVal, time);
По мне так такие вещи лучше делать через стандартный аниматор. К нему пишите небольшой контроллер, который обновляет параметры по команде с кнопки и запускается анимация. Вот пример видео на английском как делать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Помогите сделать так чтобы при нажатии на кнопку удалялась выделенная строчка в DataGridView из базы данных
как можно перенести на 2 лист, где: Нижняя челюсть - Левая сторона от 44, хочу перенести на 2 листНо как можно сделать?
ConstantsTEMPFOLDER - Папка "Мои документы" текущего пользователя