接入指南 API 工具 其他

Unity 快游戏平台 SDK 能力接入指南

为降低 Unity 开发者接入平台能力的门槛,我们在转换插件中内置了 C# SDK,开发者可直接通过熟悉的 C# 语言访问平台提供的能力。

⚠️ 注意:Unity 的 PlayerPrefs 在 WebGL 平台上无法使用,SDK 提供了平台专用的 PlayerPrefs 替代方案,务必区分使用。


一、统一 SDK 接入配置

  1. 安装 Unity 最新插件
  2. 导出快游戏时,勾选“启用统一 SDK”打开配置面板:

配置说明

  • 支持账号、支付、广告等功能的一站式配置。
  • 账号:配置 appId、appKey、appSecret 等。
  • 支付:配置服务器下单接口 sdkPayUrl。
  • 广告:支持 banner、插屏、原生模板、激励视频 4 种广告。

二、接口调用示例

1. 登录接口

QG.Login(
    (msg) => Debug.Log("登录成功:" + JsonUtility.ToJson(msg)),
    (msg) => Debug.Log("登录失败:" + msg.errMsg)
);

2. 支付接口

var param = new PayParam { productName = "金币礼包", orderAmount = 10 };
QG.Pay(param,
    (msg) => Debug.Log("支付成功:" + JsonUtility.ToJson(msg)),
    (msg) => Debug.Log("支付失败:" + JsonUtility.ToJson(msg)),
    (msg) => Debug.Log("支付完成:" + JsonUtility.ToJson(msg))
);

支付流程:客户端调用 QG.Pay → 请求 sdkPayUrl → 获取平台订单信息 → 拉起支付 → 支付完成后客户端与服务器回调。

3. 广告接口

广告位获取:

var bannerId = (string)QG.GetAdInfo()["bannerAd"]["id1"];

展示 Banner 广告:

bannerAd = QG.CreateBannerAd(new QGCreateBannerAdParam {
    adUnitId = bannerId,
    adIntervals = 30,
    style = new Style()
});

bannerAd.OnLoad(() => bannerAd.Show());
bannerAd.OnError((err) => Debug.Log("Banner 加载失败: " + JsonUtility.ToJson(err)));

展示插屏、激励视频、原生模板广告方式类似。


三、系统能力

创建桌面图标

QG.InstallShortcut("",
    (msg) => Debug.Log("创建成功"),
    (msg) => Debug.Log("创建失败:" + msg.errMsg)
);

检查图标是否存在

QG.HasShortcutInstalled(
    (msg) => Debug.Log("已创建图标"),
    (msg) => Debug.Log("尚未创建图标")
);

获取系统信息

QG.GetSystemInfo(
    (msg) => Debug.Log("系统信息:" + msg.data),
    (msg) => Debug.Log("获取失败:" + msg.errMsg)
);

var infoSync = QG.GetSystemInfoSync();
Debug.Log("同步系统信息:" + infoSync);

退出游戏

QG.ExitApplication();

四、设备能力

复制文本到剪贴板

QG.SetClipboardData("复制内容",
    (msg) => Debug.Log("复制成功"),
    (msg) => Debug.Log("复制失败:" + msg.errMsg)
);

读取剪贴板内容

QG.GetClipboardData(
    (msg) => Debug.Log("剪贴板内容:" + msg.data),
    (msg) => Debug.Log("读取失败:" + msg.errMsg)
);

五、界面交互(键盘)

展示键盘:

QG.ShowKeyboard(new KeyboardParam {
    defaultValue = "快游戏",
    maxLength = 100,
    confirmType = "done"
},
    (msg) => Debug.Log("展示成功"),
    (msg) => Debug.Log("取消输入"),
    (msg) => Debug.Log("完成输入")
);

监听与移除事件:

QG.OnKeyboardInput((msg) => Debug.Log("输入中: " + msg.value));
QG.OnKeyboardConfirm((msg) => Debug.Log("确认输入: " + msg.value));
QG.OffKeyboardInput();
QG.HideKeyboard();

六、平台版 PlayerPrefs 替代方案

示例以 int 类型为例,其他如 string/float 同理。

设置值

if (Application.platform == RuntimePlatform.WebGLPlayer)
    QG.StorageSetIntSync("gold", 100);
else
    PlayerPrefs.SetInt("gold", 100);

读取值

int gold = Application.platform == RuntimePlatform.WebGLPlayer
    ? QG.StorageGetIntSync("gold", 0)
    : PlayerPrefs.GetInt("gold", 0);

删除 / 判断

QG.StorageDeleteKeySync("gold");
QG.StorageDeleteAllSync();
bool hasKey = QG.StorageHasKeySync("gold");

保存(WebGL 无需)

if (Application.platform != RuntimePlatform.WebGLPlayer)
    PlayerPrefs.Save();

七、其他

其他接口可参考 QG.cs代码进行接入。示例代码可下载查看FileSystem.cs以及SystemTest.cs

自定义拓展

若需调用自定义 JS,可通过 qg.minigame.jslib 添加接口,在 QGMiniGameManager 中封装调用。

参考 Unity 官方手册:WebGL 与浏览器交互

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容