Ulevelleveldirtiedevent broadcast
==============================
UnrealEdSrv.cpp/EditorServer.cpp/UEditorEngine/UUnrealEdEngine is good place to see commands and what things need to be broadcast
-
Also useful for most editor actions (like building map, rebuilding volumes, cooking, replaceactors, etc etc )
-
edact prefixed things are editor actions (e.g. edactCopySelected, edactPasteSelected, etc)
ConvertLightActors/ReplaceActors/ConvertActors
SetPreviewMeshMode/UpdatePreviewMesh/CyclePreviewMesh
CopySelectedActorsToClipboard/PasteSelectedActorsFromClipboard
SyncBrowserToObjects/SyncToContentBrowser/SyncActorLevelsToContentBrowser
FindSelectedActorsInLevelScript
FEditorFileUtils::SaveCurrentLevel/GetDirtyWorldPackages/GetDirtyContentPackages/SaveDirtyPackages/SaveMap
EditorLevelUtils::MakeLevelCurrent( LevelToMakeCurrent );
UEditorLevelUtils::MoveSelectedActorsToLevel()
MoveActorInFrontOfCamera
MoveViewportCamerasToActor
MoveViewportCamerasToComponent
SnapObjectTo
MoveViewportCamerasToBox
GetPIEViewport/GetActiveViewport
SpawnPlayFromHereStart
ParseMapSectionIni/LoadMapListFromIni
PackageUsingExternalObjects
FindReferencesToActorFromLevelScript/ModifyActorReferencedGraphNodes
FindActorsThatReferenceActor/GetActorReferenceMap/ReplaceAllActorRefrences
FBlueprintEditorUtils: Lots of useful blueprint nodes
GetGraphFunctionMetaData/GetEntryNode/GetEntryAndResultNodes/CheckIfGraphHasLatentFunctions
OpenReparentBlueprintMenu
===========================
FSelfRegisteringExec for POD structs to register for console commands
FStringOutputDevice Archive;
const FExportObjectInnerContext Context;
UExporter::ExportToOutputDevice(&Context, Object, NULL, Archive, TEXT("copy"), 0, PPF_Copy | PPF_DebugDump, false);
Archive.Log(TEXT("\r\n\r\n"));
FString ExportedText;
ExportedText = Archive;
========================================
AHUD::HandleBugScreenShot() override for bug screenshots and use bugscreenshotwithhudinfo to screenshot
==================
GetCurrentViewportPlacementTransform
Add Slate Window To Game:
FSlateApplication::Get().AddWindow
(
SNew(SWindow)
.ClientSize(FVector2D(400,600))
.Title( FText::FromString( Object->GetName() ) )
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("ToolPanel.GroupBorder"))
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.FillHeight(1)
[
DetailsView.ToSharedRef()
]
]
]
);
Create Detail View of all properties in an object:
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
TSharedPtr<IDetailsView> DetailsView = PropertyModule.CreateDetailView(Args);
DetailsView->SetIsPropertyVisibleDelegate(FIsPropertyVisible::CreateStatic(&Local::IsPropertyVisible, bShouldShowNonEditable));
DetailsView->SetObject(Object);
// create Slate property window
FSlateApplication::Get().AddWindow
(
SNew(SWindow)
.ClientSize(FVector2D(400,600))
.Title( FText::FromString( Object->GetName() ) )
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("ToolPanel.GroupBorder"))
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.FillHeight(1)
[
DetailsView.ToSharedRef()
]
]
]
\;
================
// HOW TO GET AN IN-DEPTH PERFORMANCE ANALYSIS OF SLATE
//
// Step 1)
// Set WITH_VERY_VERBOSE_SLATE_STATS to 1.
//
// Step 2)
// When running the game (outside of the editor), run these commandline options
// in order and you'll get a large dump of where all the time is going in Slate.
//
// stat group enable slateverbose
// stat group enable slateveryverbose
// stat dumpave -root=stat_slate -num=120 -ms=0