微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐