Newer
Older
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class RendererExtensions
{
public static IEnumerator ProgrammMaterialChange(this Renderer renderer, IEnumerable<(float delay, float lerp_time, Material new_material)> instructions, bool loop = false)
{
Material last_material;
do
foreach (var (delay, lerp_time, new_material) in instructions)
{
yield return new WaitForSeconds(delay);
last_material = renderer.material;
for (IEnumerator<float> lerper = MathfExtensions.LerpInTime(0, 1, lerp_time)
; lerper.MoveNext();)
renderer.material.Lerp(last_material, new_material , lerper.Current);
yield return null;
}
}
while (loop);
}
}