It performs type-safe dynamic cast on given object. In this case you cast Controller variable in Character class to PlayerController class to get access to HUD. You could use regular C++ cast too - (APlayerController*)Controller but its safer to use Cast<> method