- Home /
Not Able to Change sprite when animation running
Hi I am new to Unity and stuck at a problem .
Here is my enemy.cs file
public class enemy : MonoBehaviour {
private Animator animator;
void Start() {
animator = GetComponent<Animator> ();
}
void OnTriggerEnter2D(Collider2D collider) {
if (!animator.GetBool ("IsEnemyAlive")) {
return;
}
// Do something
}
void Update () {
// Base Condition
if (gameObject == null) {
return;
}
// Do something.
}
}
Here is EnemyGenerator.cs
public class EnemyGenerator : MonoBehaviour {
public GameObject enemyPrefab;
public Sprite[] allEnemySprites;
private float[] allEnemyHealth = {100f, 150f, 200f, 250f};
// Use this for initialization
void Start () {
generateEnemy ();
}
void generateEnemy () {
foreach (Transform child in transform) {
GameObject enemy = Instantiate (enemyPrefab, child.transform.position, Quaternion.identity) as GameObject;
// Change sprites and Health
int totalSprites = allEnemySprites.Length;
int randomPosition = Random.Range (0, totalSprites);
enemy.GetComponent<enemy> ().health = allEnemyHealth [randomPosition];
enemy.GetComponent<SpriteRenderer>().sprite = allEnemySprites[randomPosition];
}
}
// Update is called once per frame
void Update () {
if (AllEnemyDead ()) {
generateEnemy ();
}
}
private bool AllEnemyDead () {
foreach (Transform child in transform) {
if (child.childCount > 0) {
return false;
}
}
return true;
}
}
And here is my state Machine
Entry ----> EnemyAnimation -----> Idle -------[IsEnemyAlive] -----> EnemyExplosion -----> Die Now here EnemyAnimation is Default state so it run everytime when a enemy created and idle state is a loop to keep enemy in correct position.
When I am trying to update sprite in EnemyGeneration method but still it is showing default sprite in game mode and health is updating. Please help me and sorry for bad english
Your answer
Follow this Question
Related Questions
2d sprite Animation - Fire at frame 2 Answers
Any way to make Animation.Play take effect immediately? 2 Answers
How to swap a spriteRenderers source sprite at runtime when used by animator 0 Answers
HOW TO MAKE A 2D OBJECT MOVE WITH TOUCH INPUT ON ANOTHER 1 Answer
Issue with animator and Triggers 0 Answers