mirror of
https://github.com/storytold/ActorSpawningPlugin.git
synced 2026-10-14 23:53:05 +00:00
cleanup
This commit is contained in:
@@ -12,10 +12,6 @@ DEFINE_LOG_CATEGORY(SpawningActorLog);
|
|||||||
ASpawningActor::ASpawningActor()
|
ASpawningActor::ASpawningActor()
|
||||||
{
|
{
|
||||||
UE_LOG(SpawningActorLog, Log, TEXT("CTOR()"));
|
UE_LOG(SpawningActorLog, Log, TEXT("CTOR()"));
|
||||||
|
|
||||||
// Set this actor to call Tick() every frame.
|
|
||||||
// You can turn this off to improve performance if you don't need it.
|
|
||||||
PrimaryActorTick.bCanEverTick = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASpawningActor::~ASpawningActor()
|
ASpawningActor::~ASpawningActor()
|
||||||
@@ -32,58 +28,13 @@ void ASpawningActor::BeginDestroy()
|
|||||||
Super::BeginDestroy();
|
Super::BeginDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ASpawningActor::Tick(float DeltaTime)
|
|
||||||
{
|
|
||||||
Super::Tick(DeltaTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
ASpawnableActor* ASpawningActor::Spawn()
|
|
||||||
{
|
|
||||||
// Spawn actor
|
|
||||||
// TODO(bt): This will memory leak.
|
|
||||||
ASpawnableActor* spawnedActor = (ASpawnableActor*)GetWorld()->SpawnActor(ASpawnableActor::StaticClass());
|
|
||||||
|
|
||||||
// Get player location
|
|
||||||
FVector playerLocation = GetWorld()->GetFirstPlayerController()->GetPawn()->GetActorLocation();
|
|
||||||
|
|
||||||
|
|
||||||
// Teleport actor randomly
|
|
||||||
// TODO(bt): Put this in front of the camera, or on the (camera -> player) arc!
|
|
||||||
float x = FMath::RandRange(-4000.0f, 4000.0f);
|
|
||||||
float y = FMath::RandRange(-4000.0f, 4000.0f);
|
|
||||||
float z = FMath::RandRange(3000.0f, 10000.0f);
|
|
||||||
|
|
||||||
FVector location(
|
|
||||||
playerLocation.X + x,
|
|
||||||
playerLocation.Y + y,
|
|
||||||
playerLocation.Z + z
|
|
||||||
);
|
|
||||||
|
|
||||||
FRotator rotation;
|
|
||||||
spawnedActor->SetActorLocationAndRotation(
|
|
||||||
location,
|
|
||||||
rotation,
|
|
||||||
false,
|
|
||||||
0,
|
|
||||||
ETeleportType::ResetPhysics
|
|
||||||
);
|
|
||||||
|
|
||||||
// We don't want to keep the actor around indefinitely since they may pile up unused.
|
|
||||||
// Optionally, we could maintain a queue and cull the oldest actors.
|
|
||||||
spawnedActor->StartDestroyTimer(100.0);
|
|
||||||
|
|
||||||
return spawnedActor;
|
|
||||||
}
|
|
||||||
|
|
||||||
ASpawnableStaticMeshActor* ASpawningActor::SpawnStaticMeshActor()
|
ASpawnableStaticMeshActor* ASpawningActor::SpawnStaticMeshActor()
|
||||||
{
|
{
|
||||||
// Spawn actor
|
// Spawn actor
|
||||||
// TODO(bt): This will memory leak.
|
// TODO(bt): This will memory leak.
|
||||||
ASpawnableStaticMeshActor* spawnedActor = (ASpawnableStaticMeshActor*)GetWorld()->SpawnActor(ASpawnableStaticMeshActor::StaticClass());
|
ASpawnableStaticMeshActor* spawnedActor = (ASpawnableStaticMeshActor*)GetWorld()->SpawnActor(ASpawnableStaticMeshActor::StaticClass());
|
||||||
|
|
||||||
// Get player location
|
FVector playerLocation = LookupPlayerLocation();
|
||||||
FVector playerLocation = GetWorld()->GetFirstPlayerController()->GetPawn()->GetActorLocation();
|
|
||||||
|
|
||||||
|
|
||||||
// Teleport actor randomly
|
// Teleport actor randomly
|
||||||
// TODO(bt): Put this in front of the camera, or on the (camera -> player) arc!
|
// TODO(bt): Put this in front of the camera, or on the (camera -> player) arc!
|
||||||
@@ -118,12 +69,6 @@ ASpawnableSkeletalMeshActor* ASpawningActor::SpawnSkeletalMeshActor()
|
|||||||
FActorSpawnParameters actorSpawnParams;
|
FActorSpawnParameters actorSpawnParams;
|
||||||
actorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
actorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
||||||
|
|
||||||
// Spawn actor
|
|
||||||
// TODO(bt): This will memory leak.
|
|
||||||
//ASpawnableSkeletalMeshActor* spawnedActor =
|
|
||||||
// (ASpawnableSkeletalMeshActor*)GetWorld()->SpawnActor(ASpawnableSkeletalMeshActor::StaticClass());
|
|
||||||
|
|
||||||
// Get player location
|
|
||||||
FVector playerLocation = LookupPlayerLocation();
|
FVector playerLocation = LookupPlayerLocation();
|
||||||
|
|
||||||
// Teleport actor randomly
|
// Teleport actor randomly
|
||||||
@@ -187,13 +132,6 @@ ASoundSpawnActor* ASpawningActor::SpawnSoundActor(USoundBase* sound)
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ASpawningActor::SpawnCallback(FString Channel, FString Message)
|
|
||||||
{
|
|
||||||
UE_LOG(SpawningActorLog, Log, TEXT("SpawnCallback()"));
|
|
||||||
|
|
||||||
Spawn();
|
|
||||||
}
|
|
||||||
|
|
||||||
FVector ASpawningActor::LookupPlayerLocation()
|
FVector ASpawningActor::LookupPlayerLocation()
|
||||||
{
|
{
|
||||||
return GetWorld()->GetFirstPlayerController()->GetPawn()->GetActorLocation();
|
return GetWorld()->GetFirstPlayerController()->GetPawn()->GetActorLocation();
|
||||||
|
|||||||
@@ -24,22 +24,14 @@ public:
|
|||||||
ASpawningActor();
|
ASpawningActor();
|
||||||
~ASpawningActor();
|
~ASpawningActor();
|
||||||
|
|
||||||
/** Create actor. */
|
/** Create static mesh actor. */
|
||||||
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
|
||||||
ASpawnableActor* Spawn();
|
|
||||||
|
|
||||||
/** Create actor. */
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
||||||
ASpawnableStaticMeshActor* SpawnStaticMeshActor();
|
ASpawnableStaticMeshActor* SpawnStaticMeshActor();
|
||||||
|
|
||||||
/** Create actor. */
|
/** Create skeletal mesh actor. */
|
||||||
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
||||||
ASpawnableSkeletalMeshActor* SpawnSkeletalMeshActor();
|
ASpawnableSkeletalMeshActor* SpawnSkeletalMeshActor();
|
||||||
|
|
||||||
/** Create actor with delegation callback. */
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
|
||||||
void SpawnCallback(FString Channel, FString Message);
|
|
||||||
|
|
||||||
/** Create sound actor. */
|
/** Create sound actor. */
|
||||||
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
UFUNCTION(BlueprintCallable, Category = "SpawningActor")
|
||||||
ASoundSpawnActor* SpawnSoundActor(USoundBase* sound);
|
ASoundSpawnActor* SpawnSoundActor(USoundBase* sound);
|
||||||
@@ -56,8 +48,4 @@ protected:
|
|||||||
|
|
||||||
// Lookup the player's location.
|
// Lookup the player's location.
|
||||||
FVector LookupPlayerLocation();
|
FVector LookupPlayerLocation();
|
||||||
|
|
||||||
public:
|
|
||||||
// Called every frame
|
|
||||||
virtual void Tick(float DeltaTime) override;
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user