At the most fundamental level, an Actor is any gameplay Object that you can place in a level. All Actors extend from the
AActor class, which is the base class of spawnable gameplay Objects.
Actors can be thought of, in one sense, as containers that hold special types of Objects called Components. For instance, a CameraActor contains a CameraComponent.
The functionality of a camera, like the field of view, is all contained within the CameraComponent. That means that the CameraComponent can be included in other Actors, like a Character,
to give the same camera functionality to those Objects.
Different types of components can be used to control how Actors move, how they are rendered, and many other parts of their functionality. All Objects, including Components, extend from the
UObject class, which is the base class of all gameplay Objects. This means they cannot be directly instanced into the world; they must belong to an Actor.
Each Actor or Object is a single instance of a class. The class sets up the template for the Actor or Object. It defines the variables that can be set for that Actor or Object, and the functions that
can be carried out within that Actor or Object. You can create new classes, or types of Objects and Actors, with C++ code. Blueprint Classes primarily allow you to create classes that set up new Actors,
although you can extend a few Objects with Blueprint Classes as well. You can also combine the two, by creating a new C++ class and then making a Blueprint Class derived from that C++ class. To learn more about
creating classes so you can make new kinds of Actors and Objects, see the Class Creation Basics page.
For more on Objects, Actors, and Components, see the Gameplay Programming documentation.