我正在尝试通过以下方式在我的Unreal Engine 4项目中获取Steam应用程序ID和Steam用户ID:
if (SteamAPI_Init())
{
IOnlineSubsystem* ossBase = IOnlineSubsystem::Get();
FOnlineSubsystemSteam* oss = Cast<FOnlineSubsystemSteam*>(ossBase);
if (!oss) {
printText(TEXT("Steam Subsystem is down!"), FColor::Red.WithAlpha(255));
return;
}
auto SteamID = FString(std::to_string(SteamUser()->GetSteamID().ConvertToUint64()).c_str());
auto AppID = FString(std::to_string(oss->GetSteamAppId()).c_str());
但是无法将IOnlineSubsystem转换为FOnlineSubsystemSteam。那么,获取FOnlineSubsystemSteam实例的正确方法是什么?
解决方案是使用static_cast:
FOnlineSubsystemSteam* oss = static_cast<FOnlineSubsystemSteam*>(ossBase);
此作品。使用UE4 Cast似乎很明显,但是在这种情况下它不起作用。