Ich habe den Code auf das Minimum reduziert:
Code: Select all
using Godot;
using Steamworks;
public partial class serverTest : Node
{
protected SteamAPIWarningMessageHook_t m_SteamAPIWarningMessageHook;
protected Callback m_GameOverlayActivated;
public override void _EnterTree()
{
OS.SetEnvironment("SteamAppId", "480");
OS.SetEnvironment("SteamGameId", "480");
bool initialized = SteamAPI.Init();
if (!initialized)
{
return;
}
GD.Print("Steam initialized successfully.");
if (m_SteamAPIWarningMessageHook == null)
{
m_SteamAPIWarningMessageHook = new SteamAPIWarningMessageHook_t(SteamAPIDebugTextHook);
SteamClient.SetWarningMessageHook(m_SteamAPIWarningMessageHook);
}
}
public override void _Ready()
{
m_GameOverlayActivated = Callback.Create(OnGameOverlayActivated);
GD.Print("Steam callback for overlay activated set up.");
}
protected static void SteamAPIDebugTextHook(int nSeverity, System.Text.StringBuilder pchDebugText) {
GD.Print($"SteamAPI Debug Message (Severity {nSeverity}): {pchDebugText}");
}
public void OnGameOverlayActivated(GameOverlayActivated_t pCallback)
{
GD.Print($"OnGameOverlayActivated callback triggered! Active: {pCallback.m_bActive}");
}
public override void _Process(double delta)
{
SteamAPI.RunCallbacks();
}
}
Code: Select all
Steam initialized successfully.
Steam callback for overlay activated set up.
Ich habe viele Dinge ausprobiert, konnte aber keinen Rückruf auslösen, den ich versucht habe. Ich weiß nicht mehr, was ich tun soll ... Fehlt mir ein Initialisierungsschritt speziell für Godot oder Steamworks.NET oder muss meine Klasse von einer anderen erben? Vielen Dank im Voraus!
Mobile version