using System.Collections; using System.Collections.Generic; using UnityEngine; public class FadeRemoveBehaviour : StateMachineBehaviour { public float fadeTime = 0.5f; private float timeElapsed = 0; SpriteRenderer spriteRenderer; GameObject objToRemove; Color startColor; // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { timeElapsed = 0f; spriteRenderer = animator.GetComponent(); objToRemove = animator.gameObject; startColor = spriteRenderer.color; } // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { timeElapsed += Time.deltaTime; float newAlpha = startColor.a * (1 - (timeElapsed / fadeTime)); spriteRenderer.color = new Color(startColor.r, startColor.g, startColor.b, newAlpha); if (timeElapsed > fadeTime) { Destroy(objToRemove); } } }