Unity 模拟系统提示功能,制作提示框定时消失,不同类型的提示效果

这篇具有很好参考价值的文章主要介绍了Unity 模拟系统提示功能,制作提示框定时消失,不同类型的提示效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity 提示功能

效果:

unity 提示框,自适应,unity,游戏引擎,c#

分析:
  • 这里用到了对象池,时间一到便要回收提示框,再次使用要置顶显示内容
  • 每个提示框都可以修改颜色,内容,存在的时间等信息
  • Scroll View能够根据内容的多少进行自适应高度
代码:
提示框功能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TFramework;

public class InfoBoxController : MonoBehaviourSimplify
{
    [HideInInspector]
    public MessageManager messageManager;
    public Image image;
    public Text infoText;
    /// <summary>
    /// 消息提示
    /// </summary>
    /// <param name="type">1:正常【绿框】、2:错误【黄框】、3:引导【蓝框】、4:系统错误【红框】</param>
    /// <param name="info">内容</param>
    /// <param name="delayTime">显示时间</param>
    public void ShowMassameBox(string type,string info,float delayTime)
    {
        //1:正常【绿框】、2:错误【黄框】、3:引导【蓝框】、4:系统错误【红框】
        switch (type)
        {
            case "1"://正常【绿框】
                image.color = Color.green;
                break;
            case "2"://错误【黄框】
                image.color = Color.yellow;
                break;
            case "3"://引导【蓝框】
                image.color = Color.blue;
                break;
            case "4"://系统错误【红框】
                image.color = Color.red;
                break;

        }
        infoText.text = info;
        Delay(delayTime, () => { messageManager.infoBoxPool.Recycle(gameObject); 
        gameObject.SetActive(false);//时间一到,进行回收并关闭自身
        });
    }

    protected override void OnBeforeDestroy()
    {

    }
}

提示管理器
using System.Collections;
using System.Collections.Generic;
using TFramework;
using UnityEngine;
using UnityEngine.UI;

public class MessageManager : MonoBehaviour
{
    public GameObject InfoBox;
    public RectTransform InfoBoxRect;
    public SimpleObjectPool<GameObject> infoBoxPool;
    private void Awake()
    {
        infoBoxPool = new SimpleObjectPool<GameObject>(addNewPoolFunc, null, 1);
    }
    GameObject addNewPoolFunc()
    {
        GameObject obj = Instantiate(InfoBox);
        obj.transform.SetParent(InfoBoxRect);
        return obj;
    }
    /// <summary>
    /// 弹出消息,1:正常【绿框】、2:错误【黄框】、3:引导【蓝框】、4:系统错误【红框】
    /// </summary>
    /// <param name="type">1:正常【绿框】、2:错误【黄框】、3:引导【蓝框】、4:系统错误【红框】</param>
    /// <param name="info">内容</param>
    /// <param name="delayTime">显示时间</param>
    public void ShowMassameContents(string type,string info,float delayTime)
    {
        GameObject fishOne = infoBoxPool.Allocate();
        fishOne.SetActive(true);
        InfoBoxController infoBoxController = fishOne.GetComponent<InfoBoxController>();
        infoBoxController.messageManager = this;
        infoBoxController.ShowMassameBox(type, info, delayTime);
        infoBoxController.transform.SetAsFirstSibling();//排到第一位
    }
}

测试代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HintTest : MonoBehaviour
{
    public MessageManager messageManager;
    public bool test1 = false;
    public bool test2 = false;
    public bool test3 = false;
    public bool test4 = false;
    void Start()
    {
        messageManager.ShowMassameContents("3", "测试开始时提示信息,显示时间10s", 10);
    }
    int index = 0;
    // Update is called once per frame
    void Update()
    {
    	//测试不同类型
        if (test1)
        {
            test1 = false;
            messageManager.ShowMassameContents("1", "提示信息"+ index + ",显示时间5s", 5);
            index++;
        }
        if (test2)
        {
            test2 = false;
            messageManager.ShowMassameContents("2", "提示信息" + index + ",显示时间5s", 5);
            index++;
        }
        if (test3)
        {
            test3 = false;
            messageManager.ShowMassameContents("3", "提示信息" + index + ",显示时间5s", 5);
            index++;
        }
        if (test4)
        {
            test4 = false;
            messageManager.ShowMassameContents("4", "提示信息" + index + ",显示时间5s", 5);
            index++;
        }
    }
}

其他:

发现一个可以利用Unity自身功能制作一个自适应文字内容的边框,原理非常简单,限制子物体的大小,再根据子物体限制自身大小

效果:

unity 提示框,自适应,unity,游戏引擎,c#

实现方法:

unity 提示框,自适应,unity,游戏引擎,c#

下载Demo

点击下载Demo文章来源地址https://www.toymoban.com/news/detail-565527.html

到了这里,关于Unity 模拟系统提示功能,制作提示框定时消失,不同类型的提示效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win11系统安装无线显示器后,该功能在界面中消失,无法成功启用投影的情况

    昨天想用两个笔记本实现双屏,选择其中一台win11的作为副屏幕,投影主屏幕的内容,但是下载安装无线显示器后,在可选功能和已安装功能找不到无线显示器,无法启用该功能。 1.使用管理员权限进入powershell 2.输入dism /Online /Get-Capabilities查看所有可选功能 3.发现无线显示器

    2024年02月12日
    浏览(34)
  • 【Unity】制作一个简单的菜单栏页面并实现其功能

    1.创建UGUI组件 (1)接下来我们制作一下整个菜单页面的UGUI,其大致制作效果如下图,有一下细节我们需要注意就是设置好Canvas的分辨率并且在创建UI组件的过程每一个物体我们对需要设置好对应的锚点让它固定在这个位置,不会随分辨率大小而改变。造成后面比较麻烦,所

    2024年02月11日
    浏览(28)
  • Unity 制作登录功能02-创建和链接数据库(SQlite)

    在Unity开发游戏时使用SQLite有多种原因,以下是其中一些主要原因: 嵌入式数据库:SQLite是一个嵌入式数据库引擎,这意味着它不需要单独的服务器进程。这使得使用SQLite非常方便,并且可以轻松地在不同的平台和操作系统上使用。 易于使用:SQLite易于学习和使用,具有简洁

    2024年02月04日
    浏览(39)
  • Unity 制作登录功能01-创建登录的UI并获取输入内容

    导入插件TextMesh Pro  这里用的是输入框侦听函数,所有UI都可以使用侦听函数 ,需要注意TMP_InputField 这个类是UI中导入的一个插件TextMesh Pro!在代码中需要引用using TMPro; 命名空间! 下面是代码:  

    2024年02月04日
    浏览(31)
  • Unity 时间定时调度系统

    之前的文章也有写过时间调度系统,但是没有支持异步调度只有回调调度,而且效率和代码可读性不是很好,下面介绍一种更优质的时间调度系统 首先需要定义一个时间行为,每次延时后需要干什么,延迟的时间类型是什么都需要使用TimerAction 这个调度器是个单例,单例在此

    2024年02月03日
    浏览(36)
  • Unity相机绕物体旋转、视野缩放功能的c#脚本实现(模拟物品展台功能),且相机参数可调

    为了实现照相机的物品展台功能,查询了网上各种各样的方法,有的需要导入资源包什么的,觉得都比较复杂。 代码部分参考了一位大佬的文章,这里附上文章链接。 ———————————————— 版权声明:本文为CSDN博主「董豪强」的原创文章,遵循CC 4.0 BY-SA版权协

    2024年02月11日
    浏览(31)
  • 人员定位系统的功能及在不同领域的应用

    人员定位系统是实时定位系统(RTLS)的一种,是用于跟踪人员位置的软硬件一体化系统。它使用无线通信技术和传感器来获取位置数据,并将其发送到监控中心或移动设备。它在多个领域使用,包括工业、医疗保健、军事、物流等。下面我们将讨论人员定位系统的功能及在不

    2024年02月07日
    浏览(44)
  • Unity—对话系统&&GalGame游戏文字对话制作

    每日一句:人间总有一两,填我十万八千梦 目录 对话系统 文本逐字打印功能 GalGame游戏(美少女游戏)文字对话 被触发物体(挂载脚本)下UI,先不激活 public   class   TalkButton  : MonoBehaviour {      public  GameObject tipshow; //提示UI      public  GameObject talkUI; //对话UI     

    2023年04月22日
    浏览(31)
  • 在Unity中制作完整的技能系统(介绍篇)

    1. 系统结构介绍 首先我们需要对技能中的部分进行一个划分。通过观察,我们不难发现,在多个技能中经常有一些相同的内容(以下的例子均来自于《英雄联盟》): 火男被动的燃烧一定时间持续伤害和提莫的E技能中毒一定时间持续伤害,效果是相同的吧。 女枪的R技能和

    2024年02月02日
    浏览(62)
  • B2:Unity制作Moba类游戏——聊天系统

    一场游戏对局中,和队友进行 友好的有礼貌的有效的沟通 可以极大提升对局胜率。在LOL国服,打字和队友聊天沟通战术是非常常见的行为: 语言的力量是无限的,甚至可以和外国小伙伴效沟通战术:       聊天系统制作起来非常简单,只要熟练掌握C#的TCP通讯协议即可,然

    2024年02月10日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包