[UE4] Destroy actor 与 Timer 设定时间导致的 character 无法重生

[UE4] Destroy actor 与 Timer 设定时间导致的 character 无法重生

这几天在写character重生的代码时遇到了一个很奇怪的问题:character 死亡后,我设置了3秒后销毁character,同时设置了一个timer在3秒后重生该character,但当我在Editor中用多人模式运行时发现:之于服务器端,character只要死了就不会重生,客户端的character死了有几率不重生,并且结束运行后不会报任何错误或者warning。

代码如下:

**解决方法:延长销毁character的时间,使之大于tiemr设定的时间。导致这个问题的原因应该是character销毁时同时也销毁了timer,导致其无法调用timer中的重生函数。**
我尝试把销毁character的时间设置为小于重生timer的时间,发现任何端都不会重生,也算是应证了上面的结论。
至于为什么客户端有几率能重生,估计就是因为运行时,销毁和重生的顺序的不确定。

解决后的代码:

**因此在代码中销毁任何actor时都要注意有没有设置小于actor生命周期的timer,不然有可能会导致逻辑上的错误。**
posted @ 2020-12-08 13:44  JiaoWaa  阅读(231)  评论(0)    收藏  举报