Unity实现跑马灯效果的示例代码

Unity实现跑马灯效果的示例代码

这篇文章主要为大家详细介绍了如何利用一致实现跑马灯效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

目录

一、效果二、需要动画插件之间三、脚本1.每个格子上的脚本文件2.管理脚本文件

一、效果

二、需要动画插件DOTween

三、脚本

1.每个格子上的脚本文件

使用系统。收藏;

使用系统。集合。泛型;

使用联合工程

使用联合工程.UI;

使用DG .补间;

公共类marqueuiitem:monobehavior

{

私有原始图像m _原始图像

私有字符串这个指数

私有协程m _协程;

私有空的开始()

{

m _ raw image=getcomponentraimage();

thisIndex=转换GetSiblingIndex().ToString();

}

public void UpdateImageColorA()

{

KillDOTween();

m _ raw图像。颜色=色彩。白色;

m _ coroutine=StartCoroutine(ShowUI());

}

私有IEnumerator ShowUI()

{

yield返回新等待秒数(0.1F);

原始图像.文件颜色(彩色透明,1.5f).SetId(本索引);

}

public void KillDOTween()

{

如果(之间(thisIndex))

{

if (m_coroutine!=空)

{

StopCoroutine(m _ coroutine);

}

两者之间.杀(本指数);

}

}

}

2.管理脚本文件

使用系统。收藏;

使用系统。集合。泛型;

使用联合工程

使用联合工程.UI;

公共类MarqueeUIManager : MonoBehaviour

{

[标题(时间间隔)]

公共浮动时间间隔=0.05f

公共RawImage m _ firstImage

公共raw image[]m _ all image;

私人协管员m _ LeftCor

私人协程m _ RightCor

私有空的开始()

{

m _ first图像。颜色=色彩。清晰;

for(int I=0;我是一名摄影师。长度;我)

{

m_allImage[i].彩色=彩色.透明

}

}

私有空的更新()

{

如果(输入GetKeyDown(KeyCode .l))

{

LeftRotationUI();

}

如果(输入GetKeyDown(KeyCode .r))

{

RightRotationUI();

}

}

私有void LeftRotationUI()

{

if (m_RightCor!=空)

{

StopCoroutine(m _ right cor);

}

if(m_LeftCor!=空)

{

StopCoroutine(m _ left cor);

}

m _ left cor=StartCoroutine(left rotation());

}

私有void RightRotationUI()

{

if (m_LeftCor!=空)

{

StopCoroutine(m _ left cor);

}

if (m_RightCor!=空)

{

StopCoroutine(m _ right cor);

}

m _ right cor=StartCoroutine(右旋());

}

私有IEnumerator LeftRoatation()

{

killaldtween();

收益率返回新的等待秒数(0.01 f);

m_firstImage .GetComponentMarqueeUIItem().UpdateImageColorA();

产量返回新的WaitForSeconds(time _ interval);

for (int i=m_allImage .长度-1;I-1;我-)

{

m_allImage[i].GetComponentMarqueeUIItem().UpdateImageColorA();

产量返回新的WaitForSeconds(time _ interval);

}

产量返回新的WaitForSeconds(time _ interval);

m_firstImage .GetComponentMarqueeUIItem().UpdateImageColorA();

}

私有IEnumerator RightRoatation()

{

killaldtween();

收益率返回新的等待秒数(0.01 f);

m_firstImage .GetComponentMarqueeUIItem().UpdateImageColorA();

产量返回新的WaitForSeconds(time _ interval);

for(int I=0;我是一名摄影师。长度;我)

{

m_allImage[i].GetComponentMarqueeUIItem().UpdateImageColorA();

产量返回新的WaitForSeconds(time _ interval);

}

产量返回新的WaitForSeconds(time _ interval);

m_firstImage .GetComponentMarqueeUIItem().UpdateImageColorA();

}

private void KillAllDOTween()

{

m_firstImage。GetComponentMarqueeUIItem()。KillDOTween();

m _ first image . color=color . clear;

for(int I=0;我是一名摄影师。长度;我)

{

m_allImage[i]。GetComponentMarqueeUIItem()。KillDOTween();

m_allImage[i]。color=Color.clear

}

}

}

设置

这就是这篇关于Unity实现ticker效果的示例代码。有关Unity ticker effect的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

Unity实现跑马灯效果的示例代码