MIF_E31222398/Assets/FadeRemoveBehaviour.cs

38 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class FadeRemoveBehaviour : StateMachineBehaviour
{
public float fadeTime = 0f;
private float timeElapsed = 0f;
SpriteRenderer spriteRenderer;
GameObject objctRemove;
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<SpriteRenderer>();
startColor = spriteRenderer.color;
objctRemove = animator.gameObject;
}
// 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(objctRemove);
}
}
}