반응형
    
    
    
  
에디터에 액터를 배치하고 난이후 액터를 선택 했을때 어떠한 구현을 하거나 선택 해제가 되었을때 어떠한 구현을 해야할 경우 이러한 이벤트를 통보 받을 수 있어야 겠습니다.
다음 페이지를 참고하였으며 구현 코드는 아래에 있습니다. UrealEd가 포함된 에디터 모듈에서 구현 해야합니다.
https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/USelection/
USelection
Manages selections of objects.
docs.unrealengine.com
header 파일 구현 입니다.
#pragma once
#include "CoreMinimal.h"
#include "Plus/SpawnSystem/PlusSpawnWave.h"
#include "PlusSpawnWaveEditor.generated.h"
UCLASS()
class PLUSEDITOR_API APlusSpawnWaveEditor : public APlusSpawnWave
{
	GENERATED_BODY()
public:
	APlusSpawnWaveEditor();
	virtual void Tick(float DeltaTime) override;
	
protected:
	virtual void BeginPlay() override;
	virtual void PostActorCreated() override;
	virtual void BeginDestroy() override;
private:
	UFUNCTION()
	void OnSelectionChanged(UObject* InObject);
	
protected:
	FDelegateHandle OnSelectionChangedDelegateHandle;
private:	
	bool bWasSelected = false;
};cpp 파일 구현입니다.
...
void APlusSpawnWaveEditor::PostActorCreated()
{
	Super::PostActorCreated();
	if (!OnSelectionChangedDelegateHandle.IsValid())
	{
		OnSelectionChangedDelegateHandle = USelection::SelectionChangedEvent.AddUObject(this, &APlusSpawnWaveEditor::OnSelectionChanged);
	}
}
void APlusSpawnWaveEditor::BeginDestroy()
{
	if (OnSelectionChangedDelegateHandle.IsValid())
	{
		USelection::SelectionChangedEvent.Remove(OnSelectionChangedDelegateHandle);
		OnSelectionChangedDelegateHandle.Reset();
	}
	Super::BeginDestroy();
}
void APlusSpawnWaveEditor::OnSelectionChanged(UObject* InObject)
{
	if (IsSelected())
	{
		UE_LOG(LogTemp, Warning, TEXT("SELECTED"));
		bWasSelected = true;
	}
	else if (bWasSelected)
	{
		UE_LOG(LogTemp, Warning, TEXT("DE-SELECTED"));
		bWasSelected = false;
	}
}반응형
    
    
    
  '게임 개발 > Unreal Engine' 카테고리의 다른 글
| [UE4] 에디터 뷰포트 카메라 얻기(Editor Viewport Camera) (0) | 2022.06.11 | 
|---|---|
| [UE4] 커스텀 구조체 TArray Contains 동작을 위한 oprator== 구현 (0) | 2022.06.11 | 
| [UE5] Lyra 분석 - AnimBP Tour (0) | 2022.05.17 | 
| [UE5] TObjectPtr<T> 소개 (0) | 2022.05.10 | 
| [UE5] Quixel Bridge가 보이지 않는 현상 수정 (0) | 2022.05.02 |