Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
EnemySpawnDefinition.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
7#include "TimerManager.h"
8#include "EnemySpawnDefinition.generated.h"
9
10
12class UMaterialInterface;
13class UMaterialInstanceDynamic;
14class UWorld;
15
16
20UCLASS(Blueprintable, BlueprintType, EditInlineNew, DefaultToInstanced, meta = (ShowWorldContextPin))
22{
23 GENERATED_BODY()
24
25public:
26 UFUNCTION(BlueprintCallable, Category = "Spawn")
27 bool StartEnemySpawnFlow(AEnemyCharacterBase* InEnemyCharacter);
28
29 UFUNCTION(BlueprintPure, Category = "Material")
30 FORCEINLINE FMaterialOpacityTransition GetSpawnEnterMaterialTransition() const
31 {
32 return SpawnEnterMaterialTransition;
33 }
34
35protected:
36 virtual void HandleFlowStarted(UObject* InFlowOwner) override;
37 virtual void HandleFlowFinished() override;
38 virtual void HandleFlowReset() override;
39 virtual void PlaySpawnFlow_Implementation(AEnemyCharacterBase* InEnemyCharacter);
40
41protected:
42 UFUNCTION(BlueprintNativeEvent, Category = "Spawn")
43 void PlaySpawnFlow(AEnemyCharacterBase* InEnemyCharacter);
44
45private:
46 void ApplyMaterialTransition(AEnemyCharacterBase* InEnemyCharacter, const FMaterialOpacityTransition& InTransition);
47 void UpdateMaterialTransition();
48 void ClearMaterialTransitionTimer();
49 void RestoreMaterialSlots();
50
51protected:
52 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Material")
53 FMaterialOpacityTransition SpawnEnterMaterialTransition;
54
55private:
56 UPROPERTY(Transient)
57 TWeakObjectPtr<AEnemyCharacterBase> ActiveEnemyCharacter;
58
59 UPROPERTY(Transient)
60 TWeakObjectPtr<UWorld> ActiveWorld;
61
62 UPROPERTY(Transient)
63 TArray<int32> ActiveMaterialSlotIndices;
64
65 UPROPERTY(Transient)
66 TArray<TObjectPtr<UMaterialInterface>> OriginalMaterials;
67
68 UPROPERTY(Transient)
69 TArray<TObjectPtr<UMaterialInstanceDynamic>> DynamicMaterials;
70
71 FTimerHandle MaterialTransitionTimerHandle;
72 float MaterialTransitionStartTime = 0.0f;
73 float ActiveTransitionDurationSeconds = 0.0f;
74 float ActiveTransitionStartOpacity = 0.0f;
75 float ActiveTransitionEndOpacity = 1.0f;
76 FName ActiveOpacityParameterName = TEXT("Opacity");
77};
Definition EnemyCharacterBase.h:49
Definition EnemySpawnDefinition.h:22
Definition FlowDefinitionBase.h:12
Definition MaterialTransitionDefinition.h:43