I’m not sure I understand what you’re suggesting. Since neither of those functions take inputs you’d either have to a) access an external data source that has the data to be used to initialize but not be stored locally or b) just use “expose on spawn” parameters regardless, do the work during BeginPlay/OnConstructed and just live with members that have no purpose afterwards or c) something else?
a) is frankly an awful idea, completely breaking any capability for encapsulation and any meaningful reusability.
b) is fine if that’s the way you want to work. I don’t really like the idea of being required to make a copy of all the information I want to use construct the object. Maybe it’s a premature optimization, for sure it doesn’t really matter for a few integers or pointers to other things, but to force it for a structure or even an array where making a copy could easily become expensive? That just doesn’t sit right with me. I don’t really like to be forced to store things I don’t want to keep, but not everyone is me .
To be clear, I wasn’t saying the approach was wrong. Only that it had a specific limitation worth being aware of and how I adjusted for that limitation (because it was important to me). I understand that not everyone will care about that limitation enough to bother working around it.