今天,在调试虚幻引擎C++脚本的时候,遇到了一个奇怪的问题,无论调用Destroy()函数,还是调用SetLifeSpan(5.f),设置actor的生存时间,actor都不能销毁,并且Destroy函数始终返回false。
折腾了几个小时,终于发现问题所在,原来是BeginPlay这个回调函数的问题
void ADodgeballProjectile::BeginPlay()
{
SetLifeSpan(5.f);
}
我一开始把Super::BeginPlay();这行代码给去掉了,加上就好了
void ADodgeballProjectile::BeginPlay()
{
Super::BeginPlay();
SetLifeSpan(5.f);
}
这样actor就能正常销毁。
说明,虚幻引擎里面的这些回调函数,如果是重写父类的方法,尽量在第一行调用父类的逻辑。