Dear Friends at Epic,
We are encouraged to create custom editor modes as follows:
/**
* Class responsible for maintaining a list of registered editor mode types.
*
* Example usage:
*
* Register your mode type with:
* FEditorModeRegistry::Get().RegisterMode<FMyEditorMode>( FName( TEXT("MyEditorMode") ) );
* or:
* class FMyEditorModeFactory : public IEditorModeFactory
* {
* virtual void OnSelectionChanged( FEditorModeTools& Tools, UObject* ItemUndergoingChange ) const override;
* virtual FEditorModeInfo GetModeInfo() const override;
* virtual TSharedRef<FEdMode> CreateMode() const override;
* };
* TSharedRef<FMyEditorModeFactory> Factory = MakeShareable( new FMyEditorModeFactory );
* FEditorModeRegistry::Get().RegisterMode( FName( TEXT("MyEditorMode") ), Factory );
*
* Unregister your mode when it is no longer available like so (this will prompt the destruction of any existing modes of this type):
* FEditorModeRegistry::Get().UnregisterMode( FName( TEXT("MyEditorMode") ) );
*/
However I did that, and I get this compiler linker error!
UE4Editor-VictoryEdEngine.exp
1>VictoryEdEngine.cpp.obj : error LNK2019: unresolved external symbol “__declspec(dllimport) public: __cdecl FSlateIcon::FSlateIcon(void)” (_imp??0FSlateIcon@@QEAA@XZ) referenced in function "public: virtual struct FEditorModeInfo __cdecl FMyEditorModeFactory::GetModeInfo(void)const " (?GetModeInfo@FMyEditorModeFactory@@UEBA?AUFEditorModeInfo@@anonymous_user_9674a66c)
1>C:\Users\Rama\Documents\Unreal Projects\Solus\Plugins\VictoryPlugin\Binaries\Win64\UE4Editor-VictoryEdEngine.dll : fatal error LNK1120: 1 unresolved externals
#Relevant Code
class FMyEditorModeFactory : public IEditorModeFactory
{
virtual FEditorModeInfo GetModeInfo() const override;
};
FEditorModeInfo FMyEditorModeFactory::GetModeInfo() const
{
return FEditorModeInfo(FBuiltinEditorModes::EM_Physics, NSLOCTEXT("EditorModes", "Rama Vertex Snap Mode", "Rama Vertex Snap Mode"));
}
#How to Get Rid of Linker Error?