菜单

Unity转Mini SDK

一、简介

应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出在线参数功能,通过在线参数可以随时远程调整应用中的参数值实现应用内容更新。

在线参数SDK插件使用时,依赖SolarEngine_minigame_unity_sdk_x.x.x.unitypackage SDK。支持unity 转抖音小游戏&微信小游戏两个平台。

二、集成前的准备工作

在正式开始数据接入之前,需要提前准备一些接入过程中需要的参数、准备在线参数SDK插件包,下面说明如何获取这些信息。

1.获取 userCode 和 Appkey

详见微信小游戏 Unity转WebGL SDK集成文档

2.获取在线参数SDK插件

点击下载地址下载在线参数SDK插件包。【详见2.2获取在线参数SDK插件】

三、SDK 集成

1.SDK引入

 unity 转抖音小游戏&微信小游戏的在线参数SDK,除引入方法不同外,其他全部相同

1.1 抖音

sesdk-miniabtest-plugin-umd.js放入Assets/StreamingAssets/__cp_js_files下即可。

1.2微信

1)将sesdk-miniabtest-plugin-umd.js放入wechat-default文件夹下【WX-WASM-SDK-V2\Runtime\wechat-default

2)game.js文件添加代码位置分别如下

import SESDK from './miniwx-cn-sesdk-umd';
//在线参数插件
import miniabtestPlugin from './sesdk-miniabtest-plugin-umd';

GameGlobal.SESDK=SESDK;
//在线参数插件
GameGlobal.miniabtestPlugin=miniabtestPlugin;

 

2.SDK初始化

由于在线参数SDK属于热力引擎SDK的一个插件,所以在线参数SDK的初始化是依赖于抖音小游戏&微信小游戏_unity转webgel 的sdk的。开发者可以通过抖音小游戏&微信小游戏_unity转webgel 的sdk的配置方法来控制是否启用在线参数SDK并使用在线参数SDK的相关功能。

// 加载在线参数SDK插件
SESDKBridge.Instance.abtestuse();
// 预初始化  
SESDKBridge.Instance.prevInit(appkey);
// 初始化SDK
SESDKBridge.Instance.init(initParams);

 

initParams参数说明:

 

参数

类型

是否必填

说明

userId

string

账户的 userCode

appKey

string

应用的 appKey

config

Config

初始化相关的配置信息

初始化配置InitConfig参数说明:

参数

类型

是否必填

说明

remoteConfig

RemoteConfig

在线参数配置

debugModel

boolean

是否开启调试,默认false不开启

在线参数配置RemoteConfig说明:

参数

类型

是否必填

说明

enable

boolean

是否初始化在线参数SDK,默认为false

mergeType

int

服务端跟SDK配置合并策略0-使用服务端配置跟用户本地已有缓存配置合并,默认。1-使用服务端配置跟用户默认配置合并

customIDProperties

Dictionary<string, object>

自定义ID,跟用户在后台设置的使用自定义ID匹配对应;属性格式要求见微信小程序 SDK或者Web SDK下自定义属性要求。

customIDEventProperties

Dictionary<string, object>

自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应; 属性格式要求见微信小程序 SDK或者Web SDK下自定义属性要求。

customIDUserProperties

Dictionary<string, object>

自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应;; 属性格式要求见微信小程序 SDK或者Web SDK下自定义属性要求。

pollingInterval

int

轮询间隔时间(单位:分),区间:30分钟-24小时,默认30分钟。

requestTimeout

long

请求配置接口的超时时间(单位:毫秒), 默认60*1000毫秒

InitParams initParams = new InitParams();
       initParams.userId = "userid";
       initParams.appKey ="appkey";
       InitConfig initConfig = new InitConfig();
       initConfig.logEnabled = true;

        RemoteConfig remoteConfig = new RemoteConfig();
        remoteConfig.pollingInterval = 30;
        remoteConfig.enable = true;
        remoteConfig.mergeType = 1;
        remoteConfig.customIDProperties = new Dictionary<string, object> { { "a", 1 } };
        remoteConfig.customIDEventProperties = new Dictionary<string, object> { { "e", 1 } };
        remoteConfig.customIDUserProperties = new Dictionary<string, object> { { "u", 1 } };
        remoteConfig.requestTimeout = 5000;
        
        initConfig.remoteConfig = remoteConfig;
        initParams.config = initConfig;

SESDKBridge.Instance.init(initParams);

注:开发者使用在线参数SDK需要通过API预置一份默认配置配置到App中,SDK使用该默认配置用来兜底,具体配置方法参考下方设置默认配置方法。

2.设置默认配置

在线参数SDK需要开发者预置一份默认配置到用户app中,方便在线参数SDK使用此默认配置进行兜底操作。

方法示例:

public void setRemoteDefaultConfig( DefaultConfig[] defaultConfig)

参数相关:

参数名称

参数含义

参数类型

是否必传

defaultConfig

开发者传入的默认配置

DefaultConfig[]

DefaultConfig[] defaultConfigs = new DefaultConfig[]
    {
      new DefaultConfig 
       { 
       name = "k1",// 配置项的名称,对应fastFetchRemoteConfig接口的参数 key
       type = 1,   //配置项的类型 1 string、2 number、3 boolean、4 json
       value = "v1" // 配置项的值
        }
           
    };

SESDKBridge.Instance.setRemoteDefaultConfig(defaultConfigs);

3.设置自定义事件属性

开发者可以为事件设置自定义属性(属性格式要求见微信小游戏 Unity转WebGL SDK集成文档下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。

方法示例:

public void setRemoteConfigEventProperties(Dictionary<string,object>properties)

注:必须在SDK初始化之前设置。

参数相关:

参数名称

参数含义

参数类型

是否必传

properties

事件自定义属性

Dictionary<string,object>

调用示例code:

 Dictionary<string, object> properties = new Dictionary<string, object>
  {
    { "k1", "value1" },
    { "k2", 2 }
  };

SESDKBridge.Instance.setRemoteConfigEventProperties(properties);

4.设置自定义用户属性

开发者可以为用户设置自定义属性(属性格式要求见微信小游戏 Unity转WebGL SDK集成文档下自定义属性要求),在线参数SDK在请求服务端配置时会带上该属性,用于服务端参数匹配。

方法示例:

public void setRemoteConfigUserProperties(Dictionary<string,object>properties)

注:必须在SDK初始化之前设置。

参数相关:

参数名称

参数含义

参数类型

是否必传

properties

事件自定义属性

Dictionary<string,object>

调用示例:

Dictionary<string, object> properties = new Dictionary<string, object>
  {
    { "k1", "value1" },
    { "k2", 2 }
  };

SESDKBridge.Instance.setRemoteConfigUserProperties(properties);

5.获取在线参数配置

在线参数SDK获取在线参数配置分为两种情况,一种是同步获取方法,通过此方法开发者可以获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取。

注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数

5.1 同步获取在线参数配置

方法示例:

 public string  fastFetchRemoteConfig(string key)

注:必须在SDK之后才可获取,可调用SESDK.SESDKBridge.Instance.addInitReadyCallback方法判断SDK是否完成初始化。

参数相关:

参数名称

参数含义

参数类型

是否必传

key

在线参数key,跟用户在后台配置参数key对应

string

返回值类型: string

SESDKBridge.Instance.addInitReadyCallback(ReadyCalllBack);
  void ReadyCalllBack()
    {
        string key = "k1";
    //获取在线参数
        string value=SESDKBridge.Instance.fastFetchRemoteConfig(key); 
     // 取值之后的操作  
       
    //需要手动调用removeInitReadyCallback移除
SESDKBridge.Instance.removeInitReadyCallback(ReadyCalllBack);
   
}

 

5.2 异步获取在线参数配置

方法示例: 

public void asyncFetchRemoteConfig(string key,AsyncFetchRemoteConfigCallBack callBack)

 

参数名称

参数含义

参数类型

是否必传

key

在线参数key,跟用户在后台配置参数key对应

string

SESDKBridge.Instance.asyncFetchRemoteConfig( "k1", callBack);
public void callBack(object value)
    {
   // // 取值后的操作
        Debug.Log("callBack"+value);
    }

————————————

 

SDK 更新记录

 

  • 2024-03-06 

    1.0.0版本上线

 

 

最近修改: 2024-03-06Powered by