Bullet类,实现了IPoolObject接口,回收池管理器通过该接口实现对继承类的操作。

空的子类,只继承。

CreateNew,bullet对象在创建时调用,如果回收池里没有缓存的,就实例化。

实例化时自动调用OnInit(),这里主要是获取类的回收池ID。

这里是获得ID的算法,先对类GetType(),比较是否已有该类的ID值生成,否则就全局计数器+1,返回新的ID值。

DoSearching是根据对象的idx(手动填,主要是优化下查找效率,分了几个档次的回收池)。然后对比ID值,决定是否获得回收池里的该对象。

以下是错误时的debug信息,这次bullet类生成的ID是10,而newBullet类生成的ID是11。但有时newBullet类生成的ID值会是10,和bullet冲突。


跟踪调试下来,是因为在实现过程里把一个bullet的对象,调用GetComponent<NewBullet>来申请创建了。


被折叠的 条评论
为什么被折叠?



