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;
}
}
