标题:
有这样的疑惑
如题,比如TimerComponent.NewRepeatedTimer为何使用传一个typeID的方式,而不直接把定时调用的那个方法传过来,让TimerAction保持,然后直接调用回调,这样不是不用写ATimer的具体类吗
就像AITimer,如果直接把AIComponent的Check方法传给TimerAction定时调用,就不用多写一个AITimer了?
因为那样做无法热重载
egametang 感谢大佬回答,那想再了解下,假设说完全不考虑热重载,这2种方式,是不是直接传回调的方式会更好,更便于书写代码呢,会不会有其他的弊端
egametang 请问这里说的热重载只是影响服务器吗,对于客户端读条热更新和关服维护是没有影响的吧?我们之前的代码里用了很多action,更新到6.0 release的时候发现传参不好搞
跟ET的风格一致,ET中几乎没有回调的写法,因为这样更容易重构。如果不考虑热重载,不考虑ET的风格,那自己可以随便搞
客户端也影响热重载啊,如果不需要这块的热重载,可以不用改
对了,还有个原因,不方便统计,比如计时器泄漏了,我无法知道是哪类计时器泄漏
egametang 这倒是,不过还是没理解为什么不能热重载,只是个回调,也没涉及成员变量什么的
因为你抓住了函数指针,热重载后,你这个函数指针还是指向老的代码
egametang 那比如说,在action里只调用方法A,逻辑都写在A里面,后期也只改A,应该就没影响了吧?
试试不就知道了,无法热重载