WinterJamSnowman/Assets/Scripts/LemonGenericLib/Visual Effects/SpriteFlicker.cs

55 lines
1.5 KiB
C#
Raw Permalink Normal View History

2023-01-24 13:51:46 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lemon.GenericLib.VFX
{
//need to be further developed
public class SpriteFlicker : MonoBehaviour
{
private SpriteRenderer sr;
// Start is called before the first frame update
void Start()
{
sr = GetComponent<SpriteRenderer>();
}
public void FlickerSprite(float duration, int intervals)
{
StopCoroutine("FlickerSpriteRoutine");
StartCoroutine(FlickerSpriteRoutine(duration, intervals));
}
IEnumerator FlickerSpriteRoutine(float duration, int intervals)
{
for (int i = 0; i < intervals; i++)
{
if (i > 0)
{
//if (i == 1) Camera_Controller.instanceCC.ApplyScreenShake(0.05f);
if (sr.maskInteraction == SpriteMaskInteraction.None)
{
sr.maskInteraction = SpriteMaskInteraction.VisibleInsideMask;
}
else
{
sr.maskInteraction = SpriteMaskInteraction.None;
}
}
yield return new WaitForSeconds(duration / intervals);
}
sr.maskInteraction = SpriteMaskInteraction.None;
}
public void StopFlicker()
{
StopCoroutine("FlickerSpriteRoutine");
sr.maskInteraction = SpriteMaskInteraction.None;
}
}
}