Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少呼叫OnTiggerEnter的频率?_C#_Performance_Unity3d - Fatal编程技术网

C# 如何减少呼叫OnTiggerEnter的频率?

C# 如何减少呼叫OnTiggerEnter的频率?,c#,performance,unity3d,C#,Performance,Unity3d,我有一个一直在开发的游戏,它需要使用许多不同的游戏对象多次调用OnTriggerEnter()。虽然它被称为很多,我不需要它被称为非常频繁。因此,我想知道是否有可能降低调用该方法的频率,比如每隔一次更新调用一次,或者甚至更低的频率。这可能吗?您可以使用以下功能手动检查触发器冲突 将它放入一个缓慢的协同进程并缓存碰撞的结果,这样您就可以随时检查它的最后状态。仍处于学习Unity和C#的早期阶段,但这是在一次练习中出现的,可能是您问题的答案 发件人: 默认情况下,协程在产生后在帧上恢复,但也可以使用

我有一个一直在开发的游戏,它需要使用许多不同的
游戏对象多次调用
OnTriggerEnter()
。虽然它被称为很多,我不需要它被称为非常频繁。因此,我想知道是否有可能降低调用该方法的频率,比如每隔一次更新调用一次,或者甚至更低的频率。这可能吗?

您可以使用以下功能手动检查触发器冲突


将它放入一个缓慢的协同进程并缓存碰撞的结果,这样您就可以随时检查它的最后状态。

仍处于学习Unity和C#的早期阶段,但这是在一次练习中出现的,可能是您问题的答案

发件人:

默认情况下,协程在产生后在帧上恢复,但也可以使用WaitForSeconds引入时间延迟:

这可以作为在一段时间内传播效果的一种方式,但也是一种有用的优化。游戏中的许多任务需要定期执行,最明显的方法是将它们包含在更新函数中。但是,此函数通常每秒调用多次。当一项任务不需要如此频繁地重复时,您可以将其放入一个协同程序中,定期更新,但不是每一帧。例如,如果附近有敌人,会发出警报警告玩家


要设置协同程序运行,您需要使用start例程函数:

此方法(OnTiggerEnter)是否可以异步运行?我不相信它可以异步运行,但我可能错了