Unity随机点名案例

效果

做了个 随机点名的小功能,希望能给新人们一些帮助~

在这里插入图片描述


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();
    }
}

相关文章

实现Unity AssetBundle资源加载管理器 AssetBundle是实现资源...
Unity3D 使用LineRenderer绘制尾迹与虚线 1.添加LineRendere...
Unity 添加新建Lua脚本选项 最近学习Unity的XLua热更新框架的...
挂载脚本时文件名和类名的关联方式 写过Unity脚本的人应该都...
Unity单例基类的实现方式 游戏开发的过程中我们经常会将各种...
这篇文章主要介绍了Unity游戏开发中外观模式是什么意思,具有...