Unity實(shí)現(xiàn)跑馬燈效果的示例代碼
一、效果
二、需要?jiǎng)赢?huà)插件DOTween
三、腳本
1.每個(gè)格子上的腳本文件
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class MarqueeUIItem : MonoBehaviour { private RawImage m_RawImage; private string thisIndex; private Coroutine m_coroutine; private void Start() { m_RawImage = GetComponent<RawImage>(); thisIndex = transform.GetSiblingIndex().ToString(); } public void UpdateImageColorA() { KillDOTween(); m_RawImage.color = Color.white; m_coroutine= StartCoroutine(ShowUI()); } private IEnumerator ShowUI() { yield return new WaitForSeconds(0.1F); m_RawImage.DOColor(Color.clear, 1.5f).SetId(thisIndex); } public void KillDOTween() { if (DOTween.IsTweening(thisIndex)) { if (m_coroutine != null) { StopCoroutine(m_coroutine); } DOTween.Kill(thisIndex); } } }
2.管理腳本文件
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class MarqueeUIManager : MonoBehaviour { [Header("時(shí)間間隔")] public float time_interval=0.05f; public RawImage m_firstImage; public RawImage[] m_allImage; private Coroutine m_LeftCor; private Coroutine m_RightCor; private void Start() { m_firstImage.color=Color.clear; for (int i = 0; i < m_allImage.Length; i++) { m_allImage[i].color=Color.clear; } } private void Update() { if (Input.GetKeyDown(KeyCode.L)) { LeftRotationUI(); } if (Input.GetKeyDown(KeyCode.R)) { RightRotationUI(); } } private void LeftRotationUI() { if (m_RightCor != null) { StopCoroutine(m_RightCor); } if(m_LeftCor!=null) { StopCoroutine(m_LeftCor); } m_LeftCor = StartCoroutine(LeftRoatation()); } private void RightRotationUI() { if (m_LeftCor != null) { StopCoroutine(m_LeftCor); } if (m_RightCor != null) { StopCoroutine(m_RightCor); } m_RightCor = StartCoroutine(RightRoatation()); } private IEnumerator LeftRoatation() { KillAllDOTween(); yield return new WaitForSeconds(0.01f); m_firstImage.GetComponent<MarqueeUIItem>().UpdateImageColorA(); yield return new WaitForSeconds(time_interval); for (int i = m_allImage.Length-1; i > -1; i--) { m_allImage[i].GetComponent<MarqueeUIItem>().UpdateImageColorA(); yield return new WaitForSeconds(time_interval); } yield return new WaitForSeconds(time_interval); m_firstImage.GetComponent<MarqueeUIItem>().UpdateImageColorA(); } private IEnumerator RightRoatation() { KillAllDOTween(); yield return new WaitForSeconds(0.01f); m_firstImage.GetComponent<MarqueeUIItem>().UpdateImageColorA(); yield return new WaitForSeconds(time_interval); for (int i = 0; i < m_allImage.Length; i++) { m_allImage[i].GetComponent<MarqueeUIItem>().UpdateImageColorA(); yield return new WaitForSeconds(time_interval); } yield return new WaitForSeconds(time_interval); m_firstImage.GetComponent<MarqueeUIItem>().UpdateImageColorA(); } private void KillAllDOTween() { m_firstImage.GetComponent<MarqueeUIItem>().KillDOTween(); m_firstImage.color = Color.clear; for (int i = 0; i < m_allImage.Length; i++) { m_allImage[i].GetComponent<MarqueeUIItem>().KillDOTween(); m_allImage[i].color = Color.clear; } } }
設(shè)置
到此這篇關(guān)于Unity實(shí)現(xiàn)跑馬燈效果的示例代碼的文章就介紹到這了,更多相關(guān)Unity跑馬燈效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#利用接口實(shí)現(xiàn)多語(yǔ)種選擇功能
這篇文章主要為大家詳細(xì)介紹了如何C#利用接口實(shí)現(xiàn)多語(yǔ)種選擇功能,即多語(yǔ)言切換的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-02-02C# InitializeComponent()方法案例詳解
這篇文章主要介紹了C# InitializeComponent()方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08unity實(shí)現(xiàn)弧形移動(dòng) 可角度自定
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)弧形移動(dòng),可角度自定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06C#判斷語(yǔ)句的表達(dá)式樹(shù)實(shí)現(xiàn)
這篇文章介紹了C#判斷語(yǔ)句的表達(dá)式樹(shù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01C#連接MySQL數(shù)據(jù)庫(kù)的方法步驟
最近兩天在解決C#連接MySql數(shù)據(jù)庫(kù)的問(wèn)題,通過(guò)不同的從網(wǎng)上學(xué)習(xí),最終找到了解決的辦法,下面這篇文章主要給大家介紹了關(guān)于C#連接MySQL數(shù)據(jù)庫(kù)的方法步驟,需要的朋友可以參考下2023-01-01C#簡(jiǎn)單獲取全屏中鼠標(biāo)焦點(diǎn)位置坐標(biāo)的方法示例
這篇文章主要介紹了C#簡(jiǎn)單獲取全屏中鼠標(biāo)焦點(diǎn)位置坐標(biāo)的方法,涉及C#針對(duì)鼠標(biāo)位置Position屬性的簡(jiǎn)單操作技巧,需要的朋友可以參考下2017-07-07