You need to enable JavaScript to run this app.
导航

导入和初始化 SDK(Unity)

最近更新时间2024.02.20 10:53:40

首次发布时间2023.04.28 09:58:12

本文档介绍如何在您的游戏 App 中导入和初始化 GNA Unity SDK。

前提条件

您已经下载了 GNA Unity SDK

在 Unity 项目中导入 SDK

警告

在 Unity 自动生成的 Xcode 项目中,GameSdkNetworkManager.frameworkEmbed 属性默认是 Do Not Embed。您需要把 GameSdkNetworkManager.frameworkEmbed 属性修改为 Embed & Sign。否则,打包后的 iOS App 会因为找不到动态库而 crash。

本文档以 Unity 2011 为例。

  1. 在 Unity 中,选择 Window > Package Manager
  2. Package Manager 窗口中,点击 + 按钮。选择 Add Package from tarball...
  3. 在弹出的窗口中,选择您下载的 .tgz 文件,点击 Open。导入完成后,GNASDK 会显示在 Packages-Other 下方。
    图片

此时,您也可以在 Unity 主界面下方的 Project 标签页看到已经导入的 GNA SDK。
图片

初始化 SDK

导入 SDK 后,参见以下步骤初始化 SDK。您可以参见 SDK 参考 了解 SDK 的详细信息。

  1. 在您的 Unity Script 中,导入 GNA SDK 的命名空间。

    using GNASDK;
    
  2. 实现 GnaMonitorCallback 委托和 GnaInitEndCallback 委托。

    /// 实现日志监控委托。您可以通过该委托查看事件类型和日志
    void OnMonitorLog(string eventType, string log)
    {
       Debug.Log($"MonitorLog type:{eventType}, log{log}");
    }
    
    /// 实现初始化结果委托。您可以通过该委托查看初始化结果
    void OnInitEnd(bool success, string errorMsg)
    {
       Debug.Log($"Initialization ends. Success: {success}, errorMsg:{errorMsg}");
    }
    
  3. 设置 GNA SDK 的初始化参数,然后调用 Init 方法初始化 SDK。

    警告

    示例代码了方便功能演示,直接传入了 App ID 和 SDK 鉴权值。在生产环境中,不建议您直接传入明文。例如,您可以预先把明文进行编码或加密处理,在传值的时候再对已编码或加密的明文进行解码或解密。同时,您必须对 App 进行代码混淆处理。否则,您的 App ID 和 SDK 鉴权值可能会被第三方通过反编译的方式获得。

    说明

    • 您需要自行管理和分配设备的 Device ID。建议您复用 App 中已有的用于标识用户设备的 ID。
    • 关于 App ID 和 SDK 鉴权值的获取方法,参见 获取 App ID 和 SDK 鉴权值
    void InitGna()
    {
      /// App ID。标识您的 App 的唯一 ID。您需要从 GNA 控制台获取 App ID
      GnaClient.Client.SetAppId("10xxxx94");
      
      /// Device ID。支持 UTF-8 字符,长度不限。标识某一台设备的唯一 ID。您需要自行设置和管理 Device ID
      GnaClient.Client.SetDeviceId("1234567689");
      
      /// SDK 鉴权值。您需要从 GNA 控制台获取 SDK 鉴权值
      GnaClient.Client.SetSecret("tzt3xxxxxxxxxxejs7hhx");
    
      /// 初始化 SDK。您需要传入上个步骤中实现的 GnaMonitorCallback 委托和 GnaInitEndCallback 委托
      GnaClient.Client.Init(OnMonitorLog, OnInitEnd);
    }
    

接下来您可以

实现网络分析或网络加速