Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

这篇具有很好参考价值的文章主要介绍了Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

很棒一个算法逻辑,记录一下笔记,与大家分享。

主要是对Unity开发时一个文字提示同时在页面慢慢出现慢慢消失两次,显示不同的文字提示。

具体功能类似于CF的挑战模式,在打完这一关进入下一关的这个时间段会出现一个文字提示表示这一关结束,然后消失,又出现一个下一关开始,然后消失。

先看效果:

这是刚刚进入游戏时,并提示后缓缓消失。

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

 这是第一波敌人消灭后出现的提示,并且在三秒后缓慢消失。缓慢出现下一个提示

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

 下一个提示:显示结束后缓缓消失,进入下一关场景。

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

下面直接上代码

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

用来控制流程的参数:

bool IsBegin = false;
bool connext = true;
bool IsNext = true;//两个布尔值用来控制提示流程顺序
int Num = 1;//关数 

首先是进入游戏后对第一关的提示显示,通过一个bool使其在update中只执行一次。(放onStart也行)

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

if(Num == 1&& !IsBegin)
        {
            text.text = "游戏开始:第一波敌人来袭";
            canvasGroup.DOFade(0, 5);//第一个参数为透明度Alpha的值,第二个是执行动作的时间
            IsBegin = true;
            MaxEnemy = 5 * Num;
        }

接下来让我们写一个调用函数的入口(在update中)函数名MyNextTip。

 看到这个if语句是不是特别的懵逼,这里解释一下,这个if语句是可以理解为一个入口,通过使用一个变量为0的条件在Update生命周期函数中进入当前方法。当变量不为0了就表示关闭入口

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用
 

而这个入口里方法的就是我们使一个提示文本在游戏界面中进行两次高逻辑的流程调用。

话不多说,上截图

有两张截图,截图下方做了思路解释。

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

上面这一张,里面有一个计时器time类似与deley的作用,布尔值IsNext是作为true时,进入到第一张图的if里,为false时进入第二张图的if里

在最里面的if里的connext的作用也是如此,当为true时执行if为真,为false时执行else里的代码,通过   !connext   进行控制,而在执行了else里的代码后,IsNext改变,进入到下图的if。

Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用

 这个if大部分和上面一样,里面的connext进行了刷新所以能重复使用,不同的是进行了我们想要的显示后,就将前面所讲的update的调用入口给关闭,直到下一次达成条件的出现。

那么我们会发现,整体的代码虽然暴露在update生命周期函数中,但是通过的入口的控制,我们能在我们想要的时候进入,渐渐出现一个文字提示后渐渐消失,然后又出现下一个文字提示又消失(不需要进行两次文字提示的可以直接用一个if就可以了,不需要IsNext控制两个)

此处的关闭入口代码是改变了其他页面的值,但是在我的项目里是影响到了我控制入口的变量。

最后对DOTween的DOFade的使用参考我的另一篇文章:(8条消息) Unity开发使用DOTween插件实现ui组件慢慢消失和慢慢出现_晚周过涧寻晨风的博客-CSDN博客

切记不要弄混。

 MyNextTip逻辑代码:

void MyNextTip()
    {
        time += Time.deltaTime;//计时器
        if (time > 2 && IsNext)//此刻为结束当前关卡提示,间隔二秒出现
        {
            if (connext)//调用提示显示
            {
                string txt = "第" + Num + "波敌人已消灭";
                text.text = txt;//刷新提示num为关卡

                canvasGroup.DOFade(1, 3);//调用显示
                connext = !connext;//使执行程序跳转到下方else
                time = 0;//重置时间
            }
            else//关闭显示提示
            {
                canvasGroup.DOFade(0, 3);//调用消失
                connext = !connext;//重置进入顺序
                time = 0;//重置时间
                Num++;//关卡加一
                IsNext = !IsNext;//调用下一关提醒,使执行程序跳转到下一个if
            }
        }
        if (time > 3 && !IsNext)//开始新的一关的提示
        {
            if (connext)//调用提示显示
            {
                string txt = "第" + Num + "波敌人出现";
                text.text = txt;//刷新提示

                canvasGroup.DOFade(1, 3);//调用显示
                connext = !connext;//使执行程序跳转到下方else
                time = 0;
            }
            else//调用提示关闭
            {
                canvasGroup.DOFade(0, 3);//调用消失
                connext = !connext;//重置进入顺序
                time = 0;
                IsNext = !IsNext;//重置进入顺序
                //print(CreateEnemy.EnemyHave);

                //关闭当前方法调用路口,不进入提示方法
                CreateEnemy.EnemyHave = 0;//重置当前界面已存在敌人
                MaxEnemy = 5*Num;//下一关的敌人增加五个
            }
        }
    }文章来源地址https://www.toymoban.com/news/detail-428029.html

到了这里,关于Untiy在update生命周期里UI的文字提示连续两次,进行慢慢进入慢慢消失操作,整体为流程控制逻辑加上DOTween的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包