Skip to content
Snippets Groups Projects
Select Git revision
  • fbf2233af6adb86e8fd170938944168ea6b96cb6
  • master default
  • JS-based-scroll-rendering
  • Paul_Marius_Level
  • Paul_Marius_2
  • Paul_Marius
  • Andi_Mark
  • be-UnityWebView
  • gitignoreFrameitServer
  • ZimmerBSc
  • Bugfix_StageLoading
  • stages
  • MAZIFAU_Experimental
  • tsc/coneworld
  • tsc/fact-interaction
  • marcel
  • MaZiFAU_TopSort
  • mergeHelper
  • zwischenSpeichern
  • tempAndrToMaster
  • SebBranch
  • 3.0
  • v2.1
  • v2.0
  • v1.0
25 results

RendererExtensions.cs

Blame
  • RendererExtensions.cs 1.00 KiB
    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;
            float start_time, end_time;
    
            do
                foreach (var (delay, lerp_time, new_material) in instructions)
                {
                    last_material = renderer.material;
                    start_time = Time.time;
                    end_time = start_time + lerp_time;
    
                    yield return new WaitForSeconds(delay);
    
                    while (end_time >= Time.time)
                    {
                        renderer.material.Lerp(last_material, new_material
                            , (Time.time - start_time) / lerp_time);
                        yield return null;
                    }
                    renderer.material = new_material;
    
                }
            while (loop);
        }
    }