Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
PoolWorldSubsystem.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Subsystems/WorldSubsystem.h"
7#include "PoolWorldSubsystem.generated.h"
8
9USTRUCT()
11{
12 GENERATED_BODY()
13
14public:
15 UPROPERTY()
16 TArray<TObjectPtr<AActor>> InactiveActors;
17};
18
20{
21 TSubclassOf<AActor> ActorClass;
22 int32 RemainingCount = 0;
23};
24
25
26UCLASS()
27class CK_UE_API UPoolWorldSubsystem : public UWorldSubsystem
28{
29 GENERATED_BODY()
30public:
31 virtual void OnWorldBeginPlay(UWorld& InWorld) override;
32
33 UFUNCTION(BlueprintCallable, Category = "ObjectPool")
34 AActor* GetActorFromPool(TSubclassOf<AActor> ActorClass, FVector Location, FRotator Rotation);
35
36 UFUNCTION(BlueprintCallable, Category = "ObjectPool")
37 void ReturnActorToPool(AActor* ActorToReturn);
38
39private:
40 AActor* CreateActorAndSetup(TSubclassOf<AActor> ActorClass, UWorld* World);
41 AActor* CreateActorFromPendingWarmup(TSubclassOf<AActor> ActorClass);
42 void QueuePoolWarmup(TSubclassOf<AActor> ActorClass, int32 ActorCount);
43 void ProcessPendingPoolWarmup();
44 void ScheduleNextPoolWarmup();
45
46private:
47 UPROPERTY()
48 TMap<TSubclassOf<AActor>, FObjectPool> ObjectPools;
49
50private:
51 TArray<FPendingPoolWarmup> PendingPoolWarmups;
52 bool bIsPoolWarmupActive = false;
53};
Definition PoolWorldSubsystem.h:28
Definition PoolWorldSubsystem.h:11
Definition PoolWorldSubsystem.h:20
TSubclassOf< AActor > ActorClass
Definition PoolWorldSubsystem.h:21