在 Unity 中管理与游戏时间相关的事件的最佳方式是啥?

Posted

技术标签:

【中文标题】在 Unity 中管理与游戏时间相关的事件的最佳方式是啥?【英文标题】:Best way to manage events bound to game time in Unity?在 Unity 中管理与游戏时间相关的事件的最佳方式是什么? 【发布时间】:2021-09-16 15:43:44 【问题描述】:

我正在开发一款游戏,需要在特定游戏时间开始几个事件(敌人在夜间生成,npc 行为的变化等)。我的第一个想法是在游戏管理器的更新功能中添加一个 if 语句检查特定时间点并启动我需要的事件。它工作正常,但我认为这不是正确的方法。

我几乎没有找到关于这种情况的信息。有人建议将协程用于定时事件,但我认为我不能将它们与游戏时间联系起来,因为游戏时间可以暂停、减慢或相反。我是 Unity 和 C# 的新手,因此试图找到高效代码和易于维护的正确方法。需要你的帮助:)

【问题讨论】:

【参考方案1】:

出于您描述的目的,统一的时间线(或动画)可以成为您的解决方案。 该视频将解释如何使用时间线。 https://www.youtube.com/watch?v=G_uBFM3YUF4

【讨论】:

以上是关于在 Unity 中管理与游戏时间相关的事件的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity 中使用委托和事件创建事件管理器(消息系统)

Unity3D场景切换UGUI组件事件开始游戏与关闭游戏

在安全且独立于平台的 Unity 中保存游戏数据的最佳方式

如何管理大型游戏的美术资源工程

Unity 碰撞检测与触发检测

Unity3D与23种设计模式享元模式(Flyweight)