Hi! I have a problem with my online subsystem implementation.
First of all, yes, my online system module is in DependencyModuleNames.
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"OnlineSubsystem",
"Json"
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
"OnlineSubsystemUtils",
"GlobalEventDispatcher",
"OnlineSubsystemMetacity"
}
);
OnlineSubsystemMetacity is my online subsystem.
The problem is I created two additional methods in my friends class that it is not intended to be implemented with default IOnlineFriends interface. Methods are RemoveInvite and QueryUserSearch;
When I want to use this methods from different module, I can access them, but on build I get unresolved external symbol for my methods.
In online subsystem, the interface is stored as IOnlineFriendsPtr, which is a shared pointer:
typedef TSharedPtr<class IOnlineFriends, ESPMode::ThreadSafe> IOnlineFriendsPtr;
And in my interface implementation it defines as shared pointer as well:
typedef TSharedPtr<FOnlineFriendsMetacity, ESPMode::ThreadSafe> FOnlineFriendsMetacityPtr;
I access my interface by casting this pointer like this:
OnlineSub = Online::GetSubsystem(GetWorld());
FriendsInterface = static_cast<FOnlineFriendsMetacity*>(OnlineSub->GetFriendsInterface().Get());
Pointers static cast is the only way for me to get implemented class with new methods. But the error still appears. Any help would be enormously appreciated.