UI闪烁效果

梦想游戏人
目录:
Unity

玩家收到攻击够全屏边缘 出现红色平滑闪烁效果

设置 Raw Image  的color 的 alpha 值 达到效果

  • public class Blink : MonoBehaviour {
  • static public Blink ins;
  • void Awake()
  • {
  • ins = this;
  • }
  • // Use this for initialization
  • void Start () {
  • StartCoroutine(doBlink());
  • }
  • // Update is called once per frame
  • void Update () {
  • }
  • // externl interface to blink
  • public void DoBlik()
  • {
  • StopCoroutine(doBlink());
  • StartCoroutine(doBlink());
  • }
  • IEnumerator doBlink()
  • {
  • GetComponent<RawImage>().enabled = true;
  • float delta=0.1f;
  • //fade in
  • for (float i = 0; i < 1; i += delta)
  • {
  • yield return new WaitForSeconds(0);
  • GetComponent<RawImage>().color = new Color(1, 1, 1, i);
  • }
  • delta /= 2.0f;
  • //fade out
  • for (float i = 1; i > 0; i -= delta)
  • {
  • yield return new WaitForSeconds(0);
  • GetComponent<RawImage>().color = new Color(1, 1, 1, i);
  • }
  • // for (float i = 0; i < 1; i += delta)
  • // {
  • // yield return new WaitForSeconds(0);
  • // GetComponent<RawImage>().color = new Color(1, 1, 1, i);
  • // }
  • //
  • //
  • // for (float i = 1; i > 0; i -= delta)
  • // {
  • // yield return new WaitForSeconds(0);
  • // GetComponent<RawImage>().color = new Color(1, 1, 1, i);
  • // }
  • GetComponent<RawImage>().enabled = false;
  • }
  • }
public class Blink : MonoBehaviour {
    static public     Blink ins;
    void Awake()
    {
        ins = this;

    }
	// Use this for initialization
	void Start () {

        StartCoroutine(doBlink());
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    // externl interface to blink
    public void DoBlik()
    {
        StopCoroutine(doBlink());

        StartCoroutine(doBlink());
    }
    IEnumerator doBlink()
    {
        GetComponent<RawImage>().enabled = true;

        float delta=0.1f;

        //fade in
        for (float i = 0; i < 1; i += delta)
        {
            yield return new WaitForSeconds(0);
            GetComponent<RawImage>().color = new Color(1, 1, 1, i);
        }

        delta /= 2.0f;
        //fade out
        for (float i = 1; i > 0; i -= delta)
        {
            yield return new WaitForSeconds(0);
           GetComponent<RawImage>().color = new Color(1, 1, 1, i);
        }


//         for (float i = 0; i < 1; i += delta)
//         {
//             yield return new WaitForSeconds(0);
//             GetComponent<RawImage>().color = new Color(1, 1, 1, i);
//         }
// 
// 
//         for (float i = 1; i > 0; i -= delta)
//         {
//             yield return new WaitForSeconds(0);
//             GetComponent<RawImage>().color = new Color(1, 1, 1, i);
//         }
      
        GetComponent<RawImage>().enabled = false;

    }

}
Scroll Up