47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace MoreMountains.Tools
|
|
{
|
|
/// <summary>
|
|
/// Image helpers
|
|
/// </summary>
|
|
|
|
public class MMImage : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// Coroutine used to make the character's sprite flicker (when hurt for example).
|
|
/// </summary>
|
|
public static IEnumerator Flicker(Renderer renderer, Color initialColor, Color flickerColor, float flickerSpeed, float flickerDuration)
|
|
{
|
|
if (renderer==null)
|
|
{
|
|
yield break;
|
|
}
|
|
|
|
if (!renderer.material.HasProperty("_Color"))
|
|
{
|
|
yield break;
|
|
}
|
|
|
|
if (initialColor == flickerColor)
|
|
{
|
|
yield break;
|
|
}
|
|
|
|
float flickerStop = Time.time + flickerDuration;
|
|
|
|
while (Time.time<flickerStop)
|
|
{
|
|
renderer.material.color = flickerColor;
|
|
yield return MMCoroutine.WaitFor(flickerSpeed);
|
|
renderer.material.color = initialColor;
|
|
yield return MMCoroutine.WaitFor(flickerSpeed);
|
|
}
|
|
|
|
renderer.material.color = initialColor;
|
|
}
|
|
}
|
|
}
|
|
|