Animation Appearing to Glitch Out

My Animation is Not rendering the correct sprite/animation when i trigger can anyone find a solution?

Image of animation Below…
Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class treantscript : MonoBehaviour
{
    public float speed = 0.2f;
    public int direction;
    public Sprite spriteUp;
    public Sprite spriteDown;
    public Sprite spriteSide;
    public bool test2;

    private int random;
    private bool test;
    private Animator anim;

    // Start is called before the first frame update
    void Start()
    {
        test2 = false;
    }

    // Update is called once per frame
    void Update()
    {
        random = Random.Range(0, 700);
        test = IsDivisible(random, 50);
        if (test == true)
        {
            test2 = false;
            if (direction == 4)
            {
                direction = 1;
            }
            else
            {
                direction = direction + 1;
            }
        }

        test = IsDivisible(random, 300);
        if (test == true)
        {
            test2 = true;
        }

        if (direction == 1)
        {
            gameObject.GetComponent<SpriteRenderer>().flipX = false;
            if (test2 == false)
            {
                transform.position += Vector3.up * speed * Time.deltaTime;
                anim.SetTrigger("walkUp");
                GetComponent<Animator>().enabled = true;
                Debug.Log('1', gameObject);
            }
            else
            {
                gameObject.GetComponent<SpriteRenderer>().sprite = spriteUp;
                GetComponent<Animator>().enabled = false;
            }
        }
        if (direction == 2)
        {
            gameObject.GetComponent<SpriteRenderer>().flipX = false;
            if (test2 == false)
            {
                transform.position += Vector3.right * speed * Time.deltaTime;
                anim.SetTrigger("walkSide");
                GetComponent<Animator>().enabled = true;
                Debug.Log('2', gameObject);
               
            }
            else
            {
                gameObject.GetComponent<SpriteRenderer>().sprite = spriteSide;
                GetComponent<Animator>().enabled = false;
            }
        }
        if (direction == 3)
        {
            gameObject.GetComponent<SpriteRenderer>().flipX = false;
            if (test2 == false)
            {
                transform.position += Vector3.down * speed * Time.deltaTime;
                anim.SetTrigger("walkDown");
                GetComponent<Animator>().enabled = true;
                Debug.Log('3', gameObject);
            }
            else
            {
                gameObject.GetComponent<SpriteRenderer>().sprite = spriteDown;
                GetComponent<Animator>().enabled = false;
            }
        }
        if (direction == 4)
        {
            gameObject.GetComponent<SpriteRenderer>().flipX = true;
            if (test2 == false)
            {
                transform.position += Vector3.left * speed * Time.deltaTime;
                anim.SetTrigger("walkSide");
                GetComponent<Animator>().enabled = true;
                Debug.Log('4', gameObject);
               
            }
            else
            {
                gameObject.GetComponent<SpriteRenderer>().sprite = spriteSide;
                GetComponent<Animator>().enabled = false;
            }
        }
    }

    void OnCollisionEnter2D(Collision2D col)
    {
        if (direction == 4)
        {
            direction = 1;
        }
        else
        {
            direction = direction + 1;
        }
    }

    public bool IsDivisible(int x, int n)
    {
        return (x % n) == 0;
    }
}

5242025--523349--Capture.PNG

Setting a trigger does nothing until the next time the Animator updates, so if you disable it immediately then it won’t get a chance to do anything.

You might be interested in trying Animancer (link in my signature) which gives you direct control over which animations you want to play without wasting time on triggers, transitions, and Animator Controllers in general. It even has some examples specifically about Directional Sprites.