Hello,
I would like to create a static method that allow me to spawn actor / attach them to a UActorComponent then set his relative position and rotation to zero.
I would like to be able to callt his method through a blueprint however when I compile I get this error and I don’t know how to fix it :
- Error ActorHelpers.h(24) : Unrecognized type ‘template’ - type must be a UCLASS, USTRUCT or UENUM
Here ActorHelpers.h :
#pragma once
#include "GameFramework/Actor.h"
#include "ActorHelpers.generated.h"
UCLASS()
class BLOODOFEVIL_API AActorHelpers : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AActorHelpers();
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick( float DeltaSeconds ) override;
UFUNCTION(BlueprintCallable, Category = "Helpers")
static template<class T>
T* SpawnActorRelativeToHisParent
(
UClass* Class,
USceneComponent* parent,
FVector location = FVector::ZeroVector,
FRotator rotation = FRotator::ZeroRotator,
AActor* Owner = NULL,
APawn* Instigator = NULL,
bool bNoCollisionFail = false
)
{
if (Class == NULL)
return nullptr;
T* actor = Cast<T>(GetWorld()->SpawnActor(Class, NAME_None, NULL, NULL, NULL, bNoCollisionFail, false, Owner, Instigator));
actor.AttachTo(parent);
actor.SetRelativeLocation(location);
actor.SetRelativeRotation(rotation);
return actor;
}
};