用C ++代码获取FOnlineSubsystemSteam实例的正确方法是什么

问题描述 投票:0回答:1

我正在尝试通过以下方式在我的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实例的正确方法是什么?

unreal-engine4 steam steamworks-api
1个回答
0
投票

解决方案是使用static_cast:

FOnlineSubsystemSteam* oss = static_cast<FOnlineSubsystemSteam*>(ossBase);

此作品。使用UE4 Cast似乎很明显,但是在这种情况下它不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.