C# 如何减少呼叫OnTiggerEnter的频率?
我有一个一直在开发的游戏,它需要使用许多不同的C# 如何减少呼叫OnTiggerEnter的频率?,c#,performance,unity3d,C#,Performance,Unity3d,我有一个一直在开发的游戏,它需要使用许多不同的游戏对象多次调用OnTriggerEnter()。虽然它被称为很多,我不需要它被称为非常频繁。因此,我想知道是否有可能降低调用该方法的频率,比如每隔一次更新调用一次,或者甚至更低的频率。这可能吗?您可以使用以下功能手动检查触发器冲突 将它放入一个缓慢的协同进程并缓存碰撞的结果,这样您就可以随时检查它的最后状态。仍处于学习Unity和C#的早期阶段,但这是在一次练习中出现的,可能是您问题的答案 发件人: 默认情况下,协程在产生后在帧上恢复,但也可以使用
游戏对象多次调用OnTriggerEnter()
。虽然它被称为很多,我不需要它被称为非常频繁。因此,我想知道是否有可能降低调用该方法的频率,比如每隔一次更新调用一次,或者甚至更低的频率。这可能吗?您可以使用以下功能手动检查触发器冲突
将它放入一个缓慢的协同进程并缓存碰撞的结果,这样您就可以随时检查它的最后状态。仍处于学习Unity和C#的早期阶段,但这是在一次练习中出现的,可能是您问题的答案
发件人:
默认情况下,协程在产生后在帧上恢复,但也可以使用WaitForSeconds引入时间延迟:
这可以作为在一段时间内传播效果的一种方式,但也是一种有用的优化。游戏中的许多任务需要定期执行,最明显的方法是将它们包含在更新函数中。但是,此函数通常每秒调用多次。当一项任务不需要如此频繁地重复时,您可以将其放入一个协同程序中,定期更新,但不是每一帧。例如,如果附近有敌人,会发出警报警告玩家
要设置协同程序运行,您需要使用start例程函数:此方法(OnTiggerEnter)是否可以异步运行?我不相信它可以异步运行,但我可能错了