Do I have to use FObjectInitializer in constructor?

They are the same. The difference is that the 1 constructor takes an initializer, the other constructor, creates the initializer, and routes all the CreateCalls through the Initializer behind the scenes. The change is because people are too lazy to type out the Initializer…