C# Sprite swap Fading

Hey people, first time posting.

Got a Small Dilemma here. Im using something similar to this

 public Sprite img1 , img2;
 
 void SetSprite()
 {
     gameObject.GetComponent<SpriteRenderer>().sprite = img1;
 }
 void SetSprite2()
 {
     gameObject.GetComponent<SpriteRenderer>().sprite = img2;
 }  

Now, all find and dandy and working like a charm.
My problem is:

void Update () {
        

     
            if (Camera.main.fieldOfView <= 32f) // If Zoom is less = 32; Hitboxes gets activated & Sprite is changed
            { BLA BLA BLA

So, user scrolls wheel, zooms in and sprite changes, but its very ugly.
I Have tried to see if I some how could bake Mathf.lerp, or Mathf.Smoothstep into the transition.

But its in a Update, so… fade in fade out, fade in, fade out.

I was thinging of setting a public bool and then an If Statment, but did not work as expected.

Have you guys got any ideas, or examples on how to do this better?
How would you structure the Bool if that would work?

Thanks People! Really appriciate you taking your time on this.

/Adgn

Hi,
Sorted by using two Colors pointed to Alpha

As well as two different Bools. Instead of Time.time used Delta time.
Works ok, need to clean it thou so please sorry for the messy code.

    if (Camera.main.fieldOfView <= 32f) // If Zoom is less = 32; Hitboxes gets activated & Sprite is changed
            {
    
                /* THIS IS FOR CUTSHIP */
                /* PLEASE CLEAN YOUR SHIT UP */
                doneFade2 = false;
                if (!doneFade) {
      
                    shitb.a = Mathf.SmoothStep(shitb.a, 0, Time.deltaTime * duration);
                    GetComponent<SpriteRenderer>().color = shitb;
                    shitb.a = 0;
                    doneFade = true;
                }
                this.GetComponent<SpriteRenderer>().sprite = CutShip;
                
                // shit.a = Mathf.SmoothStep(shit.a, 1, t);
                shitb.a = Mathf.SmoothStep(shitb.a,1,Time.deltaTime*duration);
                GetComponent<SpriteRenderer>().color = shitb;
if (hboxbool==false) { 
            hitBoxes.SetActive(true);
            hboxbool = true;

            }

I can prob put a If statment on shitb.color so it ignores walking through that if Alpha is >=1

Hope this solves stuff for other people as well.

/ADGN