Use a Lambda. Besides that you need to set looping to true if you want it to fire every 2 seconds
world = w;
FTimerDelegate del;
del.BindLambda([this] {
// Logic here or call the Function (this needs to be Captured like in this example)
OnTick();
});
world->GetTimerManager().SetTimer(TimerHandle, del, 2, true);