Unity-實現UGUI閃爍效果
阿新 • • 發佈:2018-12-19
沒什麼特殊點,直接一套程式碼
using UnityEngine; using System.Collections; using UnityEngine.UI; public class ShanShuoAnim : MonoBehaviour { private float alpha = 0.2f; private float alphaSpeed = 8f; private bool isShow = true;//用來控制閃爍的內容 private CanvasGroup cg; private bool isClick = false;//用來控制 徹底不需要走動畫了 private Image shanImg; public Sprite shan_sprite; //外部傳進來的 void Start() { cg = this.transform.GetComponent<CanvasGroup>(); shanImg = this.transform.GetComponent<Image>(); } void Update() { if (isClick) { if (isShow) { if (alpha != cg.alpha) { cg.alpha = Mathf.Lerp(cg.alpha, alpha, alphaSpeed * Time.deltaTime); //這個方法表示的是一種簡便過程 傳入初始和想達到的 if (Mathf.Abs(alpha - cg.alpha) <= 0.01) { //Debug.Log("更新2===" + alpha + "===" + cg.alpha); cg.alpha = alpha; isShow = false; } } } else { if (1 != cg.alpha) { cg.alpha = Mathf.Lerp(cg.alpha, 1, alphaSpeed * Time.deltaTime); //這個方法表示的是一種簡便過程 傳入初始和想達到的 if (Mathf.Abs(1 - cg.alpha) <= 0.01) { //Debug.Log("更新3===" + alpha + "===" + cg.alpha); cg.alpha = 1; isShow = true; } } } } } public void ShowAnim() { //alpha = 1; isClick = true; shanImg.sprite = shan_sprite; //cg.blocksRaycasts = true;//可以和該UI物件互動 } public void HideAnim() { isClick = false; //alpha = 0; //cg.blocksRaycasts = false;//不可以和該UI物件互動 } }
掛在指令碼
實現!
關注我的微信公眾號,隨時都有技術,遊戲,認知,職場/發展的優質文章推送!
微信掃一掃下方二維碼即可關注:
如果文章對您有幫助,歡迎撩我: