Unity 延迟执行的5种方式

这篇具有很好参考价值的文章主要介绍了Unity 延迟执行的5种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法一、Update每帧检测时间

写法复杂,可读性差。方法1适合需要同步显示时间的场合

private float timer= 3f;
bool flag =true;

void Update()
{
    if(!flag) return;
    
    if(timer<0)
    {
        flag =false;
        //执行逻辑
    }
    else
    {
        timer-=Time.deltaTime;
    }
    
}
public float coldTime;  
public void DelayDestroy3()  
{  
if (coldTime > 0)  
{  
coldTime -= Time.deltaTime; //如果coldTime大于零 就减去deltaTime  
//deltaTime返回一个数值 1/帧率 如当前是50帧 则返回1/50  
//如果使用FixedUpdate可以用Time.fixedDeltaTime  
}  
else  //(coldTime<0》)若时间不大于0 即计时结束 则执行代码块  
{  
//Scripts here  

}  
}

方法二、Invoke

方法2适合简单的延迟场合

1.延迟执行函数

pubic float delayTime;
void Start()
    {        
        Invoke("Explode", delayTime);        
    }


void Explode()
    {
        anim.SetTrigger("explode");
    }

2.重复延迟执行函数

InvokeRepeating("Explode",delayTime,intervalTime)

  1. 参数一:函数名

  2. // 参数二:第一次执行的延迟时间

  3. // 参数三:之后每次执行的间隔时间

3.取消延迟函数

CancelInvoke("Explode");

只要取消了指定延迟 不管之前该函数开启了多少次 延迟执行 都会统一取消

4.判断是否有延迟函数

if (IsInvoking("Explode"))

{

        print("存在延迟函数");

}

方法三、协程

使用协程,配合WaitForSeconds,可控性更高,可以直接传参。方法3适合较为复杂的延迟场合

void()
{
    StartCoroutine(DelayMethod(3));
}

IEnumerator DelayMethod(float delayTime)
{
    //受到TimeScale影响
    yield return new WaitForSeconds(delayTime);

    //不受到TimeScale影响
    yield return new WaitForSecondsRealTime(delayTime);

} 

方法四、DoTween动画插件

方法4适合UI动画场合(配合其他功能一起使用)

void Start ()
{
    var seq= DOTween. Sequence ();
    seq.AppendInterval (3f);
    seq.AppendCallback(()=>{ DelayFunc(8); });
    seq.SetAutoKill (false);
    // seq. SetUpdate (true);//不受Time.timeScale影响
}

void DelayFunc(float diff)
{
    //执行逻辑
}

方法五、UnityTimer(github上开源项目)

方法5可以自行尝试,不觉得能平替所有方法

void Start()
{
    Timer.Register (3f, () => //执行逻辑);
}

akbiggs/UnityTimer:功能强大且方便的库,用于在 Unity3D 中延迟后运行操作。 (github.com)文章来源地址https://www.toymoban.com/news/detail-518365.html

总结

  • 方法1适合需要同步显示时间的场合
  • 方法2适合简单的延迟场合
  • 方法3适合较为复杂的延迟场合
  • 方法4适合UI动画场合(配合其他功能一起使用)
  • 方法5可以自行尝试,不觉得能平替所有方法

到了这里,关于Unity 延迟执行的5种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity、UE、Cocos游戏开发引擎的区别

    Unity、Unreal Engine(UE)和Cocos引擎是三个常用的游戏开发引擎,它们在功能和特性上有一些区别。以下是它们之间的主要区别: 编程语言:Unity使用C#作为主要的编程语言,开发者可以使用C#脚本进行游戏逻辑编写。Unreal Engine主要使用C++作为编程语言,但也支持蓝图系统,允许

    2024年02月22日
    浏览(47)
  • Unity vs Godot :哪个游戏引擎更适合你?

    游戏引擎的选择对开发过程和最终产品质量有着重大影响。近年来,Godot和Unity这两款引擎受到广泛关注。本文将从多个维度对两者进行比较,以期为开发者提供正确的选择建议。 Godot和Unity都有各自的优势,没有绝对的好坏之分。Godot开源免费,上手简单,更适合2D和小型游戏

    2024年01月23日
    浏览(74)
  • 30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月11日
    浏览(52)
  • Unity游戏开发之游戏存档方式

    目录 1.Unity自带存储方式PlayerPrefs 2.XML存储方式 3.Json类型存储方式 1.Unity的序列化问题 2.Unity中支持序列化的类 3.Unity中Json的使用方法  4.SQLite 1.SQLite的一些基础(简单介绍,不会深入讲解) 2.在Unity中使用SQLite 3.SQLite的优劣 结语         属于unity自带的数据存储方法,其形式

    2024年02月06日
    浏览(33)
  • Unity Physics2D 2d物理引擎游戏 笔记

    2d 材质 里面可以设置 摩擦力 和 弹力 Simulated:是否在当前的物理环境中模拟,取消勾选该框类似于Disable Rigidbody,但使用这个参数更加高效,因为Disable会销毁内部产生的GameObject,而取消勾选Simulated只是禁用。 Kinematic 动力学刚体 动力学刚体不受重力和力的影响,而受用户的

    2023年04月24日
    浏览(102)
  • Unity和UE4两大游戏引擎,你该如何选择?

    目录 游戏引擎 2 —— 难易区别 编程语言 3 —— 游戏产品 UE4制作的游戏产品  Unity制作的游戏产品  产品类型 5 —— 资源商店 6 —— 人才需求 平均薪资 总结      Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏开发软件,他们帮我们实现了复杂的底层逻

    2023年04月08日
    浏览(53)
  • GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

    GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的机遇,第一个是oprea的合作奖,第二个是用支持c#换来的微软的投资,第三个是虚幻

    2024年02月14日
    浏览(48)
  • Unity 引擎做残影效果——3、顶点偏移方式

    Unity实现残影效果   大家好,我是阿赵。   继续讲Unity引擎的残影做法。这次的残影效果和之前两种不太一样,是通过顶点偏移来实现的。   具体的效果是这样:   与其说是残影,这种效果更像是移动速度很快时造成的速度线,所以在移动过程中的效果还是非常好

    2024年02月14日
    浏览(23)
  • Unity笔记:修改代码执行的默认打开方式

    使用  External Tools  偏好设置可设置用于编写脚本、处理图像和进行源代码控制的外部应用程序。 External Script Editor: 选择 Unity 应使用哪个应用程序来打开脚本文件。Unity 会自动将正确的参数传递给内置支持的脚本编辑器。Unity 内置支持 Visual Studio Community、Visual Studio Code (V

    2024年02月05日
    浏览(31)
  • Unity 引擎做残影效果——2、屏幕后处理方式

    Unity实现残影效果   大家好,我是阿赵。   这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影,这一期介绍的是用屏幕后处理的方法做残影。   之前的BakeMesh方法,是真的生成了很多个网格模型在场景里面。如果用后处理做,就没有这个过程。   

    2024年01月17日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包