I am a bit confused why Controllers are based on Actors.
The docs state:
I am asking because I need to do something similar. I am currently creating a Spell system which doesn’t need to be placed in the world but it should have the ability to tick.
That is why I inherited from UObject and created the Tick function myself, but I am wondering why a Controller is based on an Actor because I don’t think that a Controller actually needs to be placed in a level.
I came to this thread after asking myself if a Controller could have Actor Components, and discovering that Controllers inherit from the Actor class. So the answer could be: to allow them to be extended via Components.
didn’t notice i’m answering 10 years old post, but lets keep it as it may be non-useless for someone
On a basic level - It looks like a bunch of bad legacy workarounds.
A single usecase i can think of : in ACharacter there is an option to “use controller rotation to determine character rotation” or something along the lines.
Seriously though, besides the things you listed about actors - there is also an extensive networking support for actors. Just this already justify its being an actor.