Функции анимации для Unity
FrameWork для UNity3d: https://dotween.demigiant.com/
Документация: https://dotween.demigiant.com/documentation.php
Принцип:
- Узнаем, что анимировать. Например, подсветку.
- Узнаем, как анимировать. Например, идем https://easings.net/ смотрим график и тип анимации. Например, мне нужна анимация easeOutSine. По ней должна меняться частота цвета подсветки
- Далее ищем какой-нибудь пример в поисковике по работе с цветом. Пусть это будет
using DG.Tweening;
using UnityEngine;
public class ColorChanger : MonoBehaviour
{
[SerializeField] private MeshRenderer meshRenderer;
private void Awake()
{
// меняется цвет материала
DOVirtual.Color(Color.black, Color.white, 10, (value) =>
{
meshRenderer.material.color = value;
});
}
}
Смотрим документацию

...В этом примере, material при каждом разе пересоздается с новым цветом в каждом кадре отрисовки, поэтому надо менять на sharedMaterial. Этот пример надо переделать с анимацией
-
Ищем функцию анимации

-
Пишем пример. Анимируем мерцание цвета с возрастающей частотой по InQuint
IEnumerator ShowWriteButton()
{
Image image = writeButton.GetComponent<Image>();
Color originalColor = image.color;
float frequency = 0;
DOVirtual.Float(0.01f, 0.1f, 1f, v => frequency = v).SetEase(Ease.InQuint);
var currentTime = Time.time;
yield return new WaitForSeconds(0.5f);
while (Time.time - currentTime <= 1f)
{
image.color = originalColor;
yield return new WaitForSeconds(frequency);
image.color = colorWrite;
yield return new WaitForSeconds(frequency);
}
}
StartCoroutine(ShowWriteButton());
В этом примере происходят параллельно две операции: изменение частоты по InQuint и использование этой частоты для подсветки кнопки. Много примеров в документации...
Dotween библиотека популярна. Её можно использовать для полета камеры, для перемещения объектов, подсветки и т.п.