Having trouble with making game object change sprites with an array?
Hello, I only just started learning unity. I do not have much experience with programming yet. Its been a lot of fun, but I'm having trouble making a game object change sprites from a sprite array. The getting health part works, but not the part that actually makes the sprite match up with what it should, it does not change the sprite at all. Am working in 2d. Here is my code:
[SerializeField] int currentHealth = 300;
[SerializeField] public Sprite[] heartSprites;
SpriteRenderer spriteRenderer;
Player player;
HealthDisplay healthDisplay;
//Methods for Displaying Health
private void CurrentHealth()
{
currentHealth = player.GetHealth();
}
//Changes sprite to display current amount of hearts
private void ChangeSprite()
{
CurrentHealth();
if (currentHealth >= 300)
{
spriteRenderer.sprite = heartSprites[3];
}
else if (currentHealth == 200)
{
spriteRenderer.sprite = heartSprites[2];
}
else if (currentHealth == 100)
{
spriteRenderer.sprite = heartSprites[1];
}
else if (currentHealth <= 0)
{
spriteRenderer.sprite = heartSprites[0];
}
}
// Start is called before the first frame update
void Start()
{
player = FindObjectOfType<Player>();
healthDisplay = FindObjectOfType<HealthDisplay>();
//heartSprites = FindObjectsOfType<Sprite>();
heartSprites = GetComponents<Sprite>();
//spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer = FindObjectOfType<SpriteRenderer>();
//GetComponent<SpriteRenderer>().sprite =heartSprites[0];
}
// Update is called once per frame
void Update()
{
ChangeSprite();
}
}
I would really appreciate help with this!
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613002606im_/https://answers.unity.com/themes/thub/images/avi.jpg)