APaperSpriteActor vs UPaperSprite

So i’ve beenn reading the documentation in hope i could figure out how to make a 2d character shoot 2d bullets and i found the 2 diferent classes in the title he thing is… i dont know the diference between them and when should i use them.

Let me ask more specific questions, in order for me make projectiles appear and shoot i need a projectile class, do i need a sprie component inside that class or can i add that sprite later on the blue print editor?

Also what is the diference between the classes in the title?

isnt an actor suposed to be created when you add the object to the game?

Can you have an actor inside an actor? (not a spawner) if so can you give me an exemple how ths would be usefull?


If you take a look at the header files for the two classes:


 * An instance of a UPaperSprite in a level.
 * This actor is created when you drag a sprite asset from the content browser into the level, and
 * it is just a thin wrapper around a UPaperSpriteComponent that actually references the asset.


 * Sprite Asset
 * Stores the data necessary to render a single 2D sprite (from a region of a texture)
 * Can also contain collision shapes for the sprite.

UPaperSprite holds the actual sprite data, but doesn’t actually have any methods or fields pertaining to being placed in a level, such as location, rotation, etc - those things are where the APaperSpriteActor comes in.

Actually the APaperSpriteActor holds an UPaperSpriteComponent which holds the UPaperSprite.

Your actor (any actor) can have any number of UPaperSpriteComponent. I suggest to you to create a Blueprint based on APaperSpriteActor and add the number of components you need.

BTW you can have a look at APaperCharacter if you need more functionality .

Ok so APaperSpriteActor is further down the chain and is used to create sprite actors, but what about the other questions?
should i ever use a APaperSpriteActor inside a class?

The 2dcharacter default class uses “U” classes for flipbooks, why is that? why not a “A” class? thats what im trying to understand, when to use one or the other

it depends on the use case, but it makes sense to use UPaperSpriteComponent instead of APaperSpriteActor “inside” a class. An Actor is composed of UActorComponent (UPaperSpriteComponent is an UActorComponent). The “A” stands for “Actor” and “U” stands for “UObject”. Its the naming conventions from Epic. You might be confusing APaperFlipbookActor with UPaperFlipbookComponent ?