38 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|