效果:
0积分下载
实现代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class NewBehavIoUrScript : MonoBehavIoUr
{
[Serializefield] private List<string> names;
[Serializefield] private float RunTime = 3f;//运行时间
private float RuningTime = 0f;//已运行时间
private float AddTime = 0.02f;//名字跳动间隔时间
[Serializefield] [Tooltip("开始点名按钮")] private Button StartButton;
[Serializefield] [Tooltip("显示名字的Text")] private Text ShowNameText;
/*[Serializefield] [Tooltip("点名结束执行的事件")]*/
private UnityEvent EndEvent = new UnityEvent();
private void Awake()
{
if (!ShowNameText || !StartButton || names.Count < 2)
return;//变量未设置全
StartButton.onClick.AddListener(() => { StartButton.interactable = false; StartCoroutine("StartDianMing"); });
EndEvent.AddListener(() => StartButton.interactable = true);
}
private IEnumerator StartDianMing()
{
while (true)
{
yield return new WaitForSecondsRealtime(AddTime);
ShowNameText.text = names[Random.Range(0, names.Count)];
if ((RuningTime += Time.deltaTime) >= RunTime)
{
AddTime *= 1.05f;
if (AddTime >= 0.2f)
{
RuningTime = 0f;
AddTime = 0.01f;
break;
}
}
}
EndEvent.Invoke();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。