UE4在Editor下的按鍵響應
通過FSlateApplication的委托實現(xiàn):
#include "SLevelViewport.h"
void FMatAbsorbModule::StartupModule()
{
FDelegateHandle TickerHandle = FTicker::GetCoreTicker().AddTicker(FTickerDelegate::CreateRaw(this, &FMatAbsorbModule::MyTick), 0.0f);
FSlateApplication::Get().OnApplicationPreInputKeyDownListener().AddRaw(this,&FMatAbsorbModule::MKeyEvent);
}
void FMatAbsorbModule::MKeyEvent(const FKeyEvent& KeyEvent)
{
FKey CurrentKey = KeyEvent.GetKey();
if (CurrentKey == EKeys::M)
{
//加入要響應M鍵的操作
}
}
獲取鼠標選中的Actor
通過GEditor實現(xiàn)
USelection* SelectedActors = GEditor->GetSelectedActors();
TArray<AActor*> Actors;
for (FSelectionIterator Iter(*SelectedActors); Iter; ++Iter)
{
AActor* Actor = Cast<AActor>(*Iter);
}