跳转到内容

正版校验

正版校验用于确认当前玩家是否在 IGP 平台上合法持有这款游戏。建议尽早接入启动流程,避免玩家进入主要玩法后才处理失败结果。

引擎状态说明
UnityPreview通过 IGPRuntimeManager 自动接入桌面客户端授权流程。
GameMakerPreview通过 Windows runtime 和本机桌面客户端完成授权。
Godot暂未暴露独立入口当前 Godot 侧主要覆盖启动票据、房间和成就,尚未提供独立正版校验 API。
  • 已完成 启动与连接
  • 已配置 IGP 分配的 appId
  • 本机 IGP 桌面客户端可用。
  • 需要验证正式游戏时,后台授权配置必须和当前 appId 对齐。

Unity 项目通常只需配置 appId,运行时会处理授权流程。业务侧主要监听状态变化。

using UnityEngine;
using IGP.UnitySDK;
public sealed class IGPAuthorizationView : MonoBehaviour
{
[SerializeField] private IGPRuntimeManager runtimeManager;
private void OnEnable()
{
runtimeManager.onAuthorizationStateChanged.AddListener(OnAuthorizationChanged);
runtimeManager.onAuthorizationFailed.AddListener(OnAuthorizationFailed);
}
private void OnDisable()
{
runtimeManager.onAuthorizationStateChanged.RemoveListener(OnAuthorizationChanged);
runtimeManager.onAuthorizationFailed.RemoveListener(OnAuthorizationFailed);
}
private void OnAuthorizationChanged(IGPAuthorizationState state)
{
Debug.Log($"IGP authorization: {state}");
if (runtimeManager.IsAuthorized)
{
// 允许进入主菜单或继续游戏。
}
}
private void OnAuthorizationFailed(string message)
{
Debug.LogError($"IGP authorization failed: {message}");
}
}

如需完成最小验证,请先执行 Unity Quick Start

引擎检查点
Unity监听到 AuthorizedOnlineAuthorizedOffline,失败时能看到失败原因。
GameMakerigp_get_authorization_state()pending 进入 authorized_onlineauthorized_offlinefailed
Godot当前不做独立正版校验验收。
  • 授权持续处于 pending:先确认桌面客户端连接是否已成功。
  • 授权失败但连接正常:检查 appId 和后台配置是否匹配。
  • Unity Editor 中验证桌面能力失败:按 Unity 调试 配置 Editor 调试项。
  • GameMaker 没有事件:确认每帧调用了 igp_update(),并持续轮询 igp_poll_event()