Unity DoTween DoFade等Do函数需要注意的问题(已修改)

这篇具有很好参考价值的文章主要介绍了Unity DoTween DoFade等Do函数需要注意的问题(已修改)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.、Do函数只需要执行一次

      实际上,Do函数不需要放在Update中每帧执行只需要执行一次就行,比如:

void Start()
    {

       transform.DOLocalMove(new Vector3(0, 0, -5), 5f);
    }

 如果在Update中一直执行DOLocalMove,你可能会看到下面这个自动扩容提示,同时你会看到帧数也在不断下降:

Unity DoTween DoFade等Do函数需要注意的问题(已修改)

这是因为每执行一次DOLocalMove操作,都会创建一个新的进程,导致重复堆积

总结:Do操作只需要执行一次!!!

但是Lerp相反,Lerp需要放在Update中每帧执行,比如:

 void Update()
    {
        transform.position = Vector3.Lerp(transform.position, new Vector3(0, 0, -5), 0.2f);
    }

二者效果差不多

这也是我之前搞混的地方,以为DOLocalMove也要放在Update中一直执行。。。。。。

二、时间参数和实际执行时间不一致,还是以上面的物体移动为例:

实际耗费时间通过下面这些函数计算:

 float StartTime,EndTime;
 bool once,First;

 void Start()
    {
        StartTime = 0f;
        EndTime = 0f;
        once = true;
        First = true;
    }
    void Update()
    {
        if (First)
        {
            transform.DOLocalMove(new Vector3(0, 0, -5), 5f);
            StartTime = Time.time;
            First = false;
        }


        if (transform.position.z == -5&&once)
        {
            transform.DOKill();
            EndTime = Time.time;
            var cost = EndTime - StartTime;
            Debug.Log("所耗时间为:"+cost+"s");
            once = false;
        }
        
    }

结果如下:

Unity DoTween DoFade等Do函数需要注意的问题(已修改)

 

实际效果:可以看到,从(0,0,0)移动到(0,0,-5)总共花了5秒左右,符合预期

实际执行时间:    一直执行,远远大于5秒,理论上是无限长时间,永远不会自动停止

解决方法,仍以上面为例:

1.通过DoKill结束DO进程,如:
        if (transform.position.z == -5)
        {
            transform.DOKill();
        }

2.定义Tween变量t,用 t = DOTween.To()进行过渡操作,并用 t.kill()结束DO进程;

3.若要实现匀速+固定时间(近似),可以参考我的文章:

Unity Lerp实现近似匀速过渡固定步长,而非由快到慢的当前比值_psp之魂的博客-CSDN博客

三、使用DoFade等操作时,确保游戏速度Time.timeScale不为0。比如我个人遇到的一个问题:当我打开UI菜单时设置了Time.timeScale=0,因此之后所有的DoFade操作(比如用Do对UI图标进行大小变化、颜色变化)都无效,直到恢复游戏速度。文章来源地址https://www.toymoban.com/news/detail-474381.html

到了这里,关于Unity DoTween DoFade等Do函数需要注意的问题(已修改)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 为什么使用ioutil.ReadAll 函数需要注意

    当我们需要将数据一次性加载到内存中, ioutil.ReadAll 函数是一个方便的选择,但是 ioutil.ReadAll 的使用是需要注意的。 在这篇文章中,我们将首先对 ioutil.ReadAll 函数进行基本介绍,之后会介绍其存在的问题,以及引起该问题的原因,最后给出了 ioutil.ReadAll 函数的替代操作。

    2024年02月13日
    浏览(50)
  • 数电中需要注意的问题

    加法器 { ①和: 1 , 2 , 4 , 7 ②向高位的进位: 3 , 5 , 6 , 7 加法器quad begin{cases} ①和:1,2,4,7\\\\ ②向高位的进位:3,5,6,7 end{cases} 加法器 { ① 和: 1 , 2 , 4 , 7 ② 向高位的进位: 3 , 5 , 6 , 7 ​ 减法器 { ①差: 1 , 2 , 4 , 7 ②向高位的借位: 1 , 2 , 3 , 7 减法器quad begin{cases} ①差:

    2024年02月03日
    浏览(31)
  • 【Unity之UI编程】编写一个面板交互界面需要注意的细节

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 当登录成功后,将玩家信息类通过,UI管理器中的显示加载方法中的委托函数,进行,加载面板后的逻辑处理(在里面执行

    2024年02月05日
    浏览(47)
  • 手机APP测试需要注意的问题

    1、前言 APP测试是一个广泛的概念,根据每个APP的应用场景不一样,测试的方向也略微的不同,在测试过程中需要灵活应用自身所知的测试手段。手机不同的功能对应着 2、安装测试 软件在不同操作系统(Android系统和IOS系统)上是否正常安装 软件在不同版本的操作系统(如

    2024年02月04日
    浏览(49)
  • 仿抖音开发需要注意的问题

    一、版权问题 仿抖音开发需要注意版权问题,包括内容的版权和软件的版权。在开发的过程中,不要直接抄袭他人的作品,应该注重保护知识产权。 二、安全性问题 仿抖音开发需要重视应用的安全性问题,避免应用在使用过程中发生安全漏洞,导致用户个人信息泄露等问题

    2024年02月04日
    浏览(46)
  • 鸿蒙APP上线需要注意的问题

    在将鸿蒙(HarmonyOS)应用上线的过程中,开发者需要注意一系列问题,以确保应用能够成功发布并在用户设备上正常运行。以下是上线过程中需要注意的一些关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.鸿蒙版本

    2024年02月02日
    浏览(43)
  • 【golang】使用通道时需要注意的一些问题

    Go 1.20 Windows 11 1.定义通道变量: 2.通道遵循FIFO先入先出规则,可以保证元素的顺序 3.通道是并发安全的,不会因多个协程的同时写入而发生数据错乱 下面的代码例子会经常出现调用 display 函数,这是我自己定义的一个函数,主要用于打印信息,代码如下: 为了减少代码冗余

    2024年02月12日
    浏览(94)
  • iview的表格添加筛选功能需要注意的问题

    在 table 中通过给 columns 数据的项,设置 filters ,可进行筛选, filters 接收一个数组。 然后再指定一个筛选函数 filterMethod 才可以进行筛选, filterMethod 传入两个参数 value 和 row 。 如果指定 filterMultiple: false ,则只能单选,默认为多选。 注意,筛选并不会影响到表格的源数据

    2024年02月16日
    浏览(41)
  • iview表单提交验证特殊组件时需要注意的问题

    使用iview的朋友们,对于表单验证肯定不陌生,通过validate来进行提交时的参数验证,一般来说,对于select或者input之列的表单组件,比较好判断, { required: true, message: ‘The name cannot be empty’, trigger: ‘blur’ },直接这样写就可以判断值存不存,但是有一些特殊组件,就不能这

    2024年02月08日
    浏览(38)
  • 【笔记】Arrays.binarySearch()实践,以及需要注意的一些问题点

    背景:我想校验一个指定的String字符串,是否存在于另一个String数组中,选择 Arrays.binarySearch() 方法实现,代码如下: 运行结果: 很直观的能看到item数组里面存在字符串 1591 ,为什么程序运行的结果却是找不到该元素呢? 首先来看一下源码: 注意,注释上提到了两个重点:

    2024年02月06日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包