I apologize in advance if this is a duplicate of anything, but I haven’t been able to find adequate answers to my questions … my Google Fu is poor
**TL;DR **Looking to have some details about Unreal, specifically custom Actors, cleared up! see: Questions
I’ve spent years working professionally in Unity, and thought it was time to expand my knowledge base.
I’ve spent a few hours looking through the Unreal Programming Documentation and feel like I have an okay grasp on things, and could probably
start working at this point, however I have a few things I’d like clarified.
Questions:
What is the benefit of creating a custom Actor?
It seems like you can use the base Actor class for most things since you can dynamically add components to them.
It seems like you wouldn’t put any logic in an Actor class since that seems to be the responsibility of ActorComponents
Two possibilities that I’ve come upon for custom actors are this:
Creating a “prefab”: Having a custom actor would allow you to specify a custom set up for a gameplay object that can be spawned at any time making the actor basically just a glorified container
Any managers could be custom Actors since they don’t have need for transforms, physics, meshes or any other components. You could create the manager as a custom actor spawn it into the scene and have any logic associated with that manager contained in that custom Actor
If I am missing any cases for custom Actors or have thought about them incorrectly, I’d appreciate it if you could clear that up for me!
However, this doesn’t really answer my question. Unreal uses the component pattern and most game logic seems to go into these ActorComponents. Now it is technically possible to add logic into a custom actor class.
For example in making the game snake, I could have a custom actor class that receives directional input from the player controller component and sends out an event to the head component causing a chain of position updates. However, this seems to go against the intention of the engine designers.
The same thing could also be achieved by having the head component listen directly to the player controller component and passing out the information.
Assuming this second approach is the intended way of using the architecture, my question is this: What kind of functionality would one put in a custom Actor class, besides overridding existing functionality.
This line of thinking is how I came up with these two possible uses for a custom actor class:
Creating a “prefab”: Having a custom actor would allow you to specify a custom set up for a gameplay object that can be spawned at any time making the actor basically just a glorified container
Any managers could be custom Actors since they don’t have need for transforms, physics, meshes or any other components. You could create the manager as a custom actor spawn it into the scene and have any logic associated with that manager contained in that custom Actor.
I understand that this is all situational but I am trying to understand what the intended design is so that I can appropriately break it when necessary.