motkot
@motkot
Программирование C#.

Как мне изменить цвет 3d обьекта в анимации?

Такая проблема. Есть 3d модель персонажа. Нужно чтобы при получении урона он мерцал красным цветом. Хотел сделать анимацию, но у обьекта нету привычного для 2d поля Color.

Как это сделать?

615c5c58ef7be296315849.png
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 1
@NoNameDeveloper
Unity Developer
У материала должно быть поле _Color.
Создешь скрипт который будет менять значение цвета через "material.SetColor()" (если не ошибаюсь).
public class MyCode 
{
	[SerializedField] private Color _color = Color.red;

	// Соединяешь материал что используется в MeshRenderer (из ресурсы).
	[SerializedField] private Material _mat; 

	public void TakeDamage()
	{
		// ...
		// блаблабла
		// ...

		StartCoroutine(ChangeColor());
	}

	private IEnumerator ChangeColor()
	{
		float speed = 5;

		// Изменение с белого на красный
		for(float t = 0; t < 1; t += Time.deltaTime * speed)
		{
			_mat.SetColor("_Color",  Color.Lerp(Color.white, _color, t));
			yield return null;
		}

		// И обратно.
		for(float t = 0; t < 1; t += Time.deltaTime * speed)
		{
			_mat.SetColor("_Color",  Color.Lerp(_color, Color.white, t));
			yield return null;
		}
	}
}
Ответ написан
Ваш ответ на вопрос

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

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