unity3d优化-代码篇(不定期更新)

1、Update

大多数情况是需要在update中处理很多逻辑的,然而unity3d底层是c/c++编写,逻辑层是c#,通过monobehaviour挂载于对象中,实现一些unity3d接口的重载。

在unity中,基于mono的接口会被托管,这样我们不能控制其回收,非托管的就不说了,非托管用户可以自行处理gc。

战斗中的每个单位都继承于EntityUnit类,逻辑处理都在update中,那么如果实例化出N个单位,那么在mono托管要处理N个update实例,这样是很浪费且没有必要的,然而战斗系统都会有一个总的逻辑类-BattleLogic,该类拥有N个单位实例的缓存,那么就可以在BattleLogic的update通过遍历来调用其EntityUnit中的Update方法,此时就需要将EntityUnit中Mono的update重载更改方法名为UpdateUnit

2、

原文地址:https://www.cnblogs.com/verlout/p/5635457.html