菜单

Unity SDK

一、说明

1.功能概述

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

2.适用范围

本文档适用于

1、使用 Unity 来开发的移动端 APP 或产品。 

2、Android 5.0 及以上的安卓系统,及 iOS 11.0 及以上的 iOS 系统。

3、使用 Unity 转抖音/微信/快手小游戏的产品。

3.SDK 下载  

  • 最新 SDK 版本为:V1.3.0.8
  • 如果开发者要使用参数下发功能,需要去Unity SDK 集成文档中下载solarengine-unity-sdk.unitypackage
  • 不支持Windows平台

二、接入SDK

 由于参数下发SDK属于热力引擎SDK的一个插件,开发者在接入参数下发SDK时不需要再进行配置,

 sdk默认接入在线参数

三、SDK 方法说明

1.初始化 SDK

参数下发SDK作为热力引擎SDK的一个插件,参数下发SDK初始化依赖于热力引擎SDK的初始化方法

方法示例

public static void initSeSdk(string appKey, SEConfig seConfig, RCConfig rcConfig)

参数说明

参数名称 参数含义 参数类型 是否必传
appKey 应用的appKey,需要联系商务人员从热力引擎后台获取 string
seConfig 热力引擎SDK配置项 SEConfig
rcConfig 热力引擎参数下发SDK配置项 RCConfig

SEConfig参数说明 详见Unity SDK集成文档

RCConfig参数说明

参数名称 参数含义 参数类型 是否必传
enable 是否启用参数下发SDK,默认为关闭状态,必传字段 bool
mergeType SDK配置合并策略,默认情况下服务端配置跟本地缓存配置合并,具体释义参考下方参数解释,可选字段 RCMergeType
customIDProperties 自定义ID,跟用户在后台设置的使用自定义ID匹配对应 Dictionary<string, object>
customIDEventProperties 自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应,可选字段 Dictionary<string, object>
customIDUserProperties 自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应,可选字段 Dictionary<string, object>

mergeType(合并策略)介绍

参数名称

参数含义

ByUser

app首次启动或版本更新时, 使用服务端配置跟用户默认配置合并,此方法可以清除本地缓存配置

ByDefault

使用服务端配置跟用户本地已有缓存配置合并,参数下发SDK默认合并策略

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

调用示

SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;

RCConfig rcConfig = new RCConfig();
rcConfig.enable = true;
rc.mergeType = RCMergeType.byUser;
Dictionary<string, object> customIDProperties = new Dictionary<string, object>();
customIDProperties.Add("id_key1", "id_value1");
customIDProperties.Add("id_key2", "id_value2");
rcConfig.customIDProperties = customIDProperties;
Dictionary<string, object> customIDEventProperties = new Dictionary<string, object>();
customIDEventProperties.Add("event_key1", "event_value1");
customIDEventProperties.Add("event_key2", "event_value2");
rcConfig.customIDEventProperties = customIDEventProperties;
Dictionary<string, object> customIDUserProperties = new Dictionary<string, object>();
customIDUserProperties.Add("user_key1", "user_value1");
customIDUserProperties.Add("user_key2", "user_value2");
rcConfig.customIDUserProperties = customIDUserProperties;


SolarEngine.Analytics.initSeSdk("开发者申请的appkey",seConfig, rcConfig);

2. 设置默认配置

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

方法示例:

 public void SetRemoteDefaultConfig(Item[] defaultConfig)

参数说明

参数名称 参数含义 参数类型 是否必传
defaultConfig 默认配置
Item[]

传入方法我们做了相应的封装,开发者可调用封装好的方法传入默认配置

方法示例:


public Item stringItem(string name, string value);
public Item intItem(string name, int value);
public Item boolItem(string name, bool value);
public Item jsonItem(string name,Dictionary<string,object> value);

 调用示例:

  SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
  List<object> list = new List<object>();
       list.Add(1);
        list.Add(2);
        list.Add(3);
  Dictionary<string, object> defaultConfig6 = new Dictionary<string, object>();
        defaultConfig6.Add("name", "test");
        defaultConfig6.Add("age", 1);
        defaultConfig6.Add("list", list);

        SESDKRemoteConfig.Item itemString = remoteConfig.stringItem("test", "test");
        SESDKRemoteConfig.Item itemJson = remoteConfig.jsonItem("testjson", defaultConfig6);
        SESDKRemoteConfig.Item itemBool = remoteConfig.boolItem("testbool", true);
        SESDKRemoteConfig.Item itemInt = remoteConfig.intItem("testint", 1);
        SESDKRemoteConfig.Item[] defaultConfigArray= new SESDKRemoteConfig.Item[]{itemString,itemJson,itemBool,itemInt};
remoteConfig.SetRemoteDefaultConfig(defaultConfigArray);
 

3. 设置事件自定义属性

开发者可以为事件设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配

方法示例

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

参数说明

参数名称 参数含义 参数类型 是否必传
properties 事件自定义属性 Dictionary<string, object>

调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string, object> eventProperties = new Dictionary<string, object>();
eventProperties.Add("event_pro1", "event_value1");
eventProperties.Add("event_pro2", "event_value2");
remoteConfig.SetRemoteConfigEventProperties(eventProperties);
 

注:给事件设置的自定义属性不支持开发者传入"_"下划线开头的key值,SDK会默认丢弃该条属性

4. 设置用户自定义属性

开发者可以为用户设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配

方法示例

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

参数说明

参数名称 参数含义 参数类型 是否必传
properties 用户自定义属性 Dictionary<string, object>

调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string, object> userProperties = new Dictionary<string, object>();
userProperties.Add("user_pro1", "user_value1");
userProperties.Add("user_pro2", "user_value2");
remoteConfig.SetRemoteConfigUserProperties(userProperties);

注:给用户设置的自定义属性不支持开发者传入"_"下划线开头的key值,SDK会默认丢弃该条属性

5. 获取参数下发配置

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

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

5.1 同步获取参数下发配置

方法示例

//非鸿蒙平台
public string FastFetchRemoteConfig(string key)

//鸿蒙平台
public void FastFetchRemoteConfig(string key,Action<string>callback)

参数说明

参数名称 参数含义 参数类型 是否必传
key 参数下发key,跟用户在后台配置参数key对应 string

返回值:返回key对应的value值,类型为string

调用示例

//非鸿蒙平台
SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
//获取参数下发的方法返回值为string类型,需要开发者根据自己的业务配置进行属性转换,此处以bool类型为例
string result = remoteConfig.FastFetchRemoteConfig("key");
bool boolResult = bool.Parse(result);

//鸿蒙平台

remoteConfig.FastFetchRemoteConfig("key", onFetchRemoteConfigCallbacks);
private void onFetchRemoteConfigCallbacks(string result)
{
    // 异步获取参数下发的回调为 string 类型,需要开发者根据自己的业务配置进行属性转换,此处以 bool 类型为例
   bool boolResult = bool.Parse(result);
}

5.2 同步获取所有参数下发配置

方法示例

//非鸿蒙平台
public Dictionary<string, object> FastFetchRemoteConfig()

//鸿蒙平台
public void FastAllFetchRemoteConfig( Action<Dictionary<string, object>> callback)

返回值:返回所有参数下发配置的值,类型为Dictionary<string, object>

调用示例

//非鸿蒙平台
SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string,object> result = remoteConfig.FastFetchRemoteConfig();

//鸿蒙平台
remoteConfig.FastAllFetchRemoteConfig(onFetchRemoteConfigCallback);
private void onFetchRemoteConfigCallback(Dictionary<string, object> result)
{
    string str = JsonConvert.SerializeObject(result);
    Debug.Log(str);
}

5.3 异步获取参数下发配置

方法示例

public void AsyncFetchRemoteConfig(string key, FetchRemoteConfigCallback callback)

参数说明

参数名称 参数含义 参数类型 是否必传
key 参数下发key,跟用户在后台配置参数key对应 string
callback 参数下发异步回调 FetchRemoteConfigCallback

调用示例

private void onFetchRemoteConfigCallback(string result) {
    //异步获取参数下发的回调为string类型,需要开发者根据自己的业务配置进行属性转换,此处以bool类型为例
    bool boolResult = bool.Parse(result);
}

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
remoteConfig.AsyncFetchRemoteConfig("key", onFetchRemoteConfigCallback);

5.4 异步获取所有参数下发配置

方法示例

public void AsyncFetchRemoteConfig(FetchAllRemoteConfigCallback callback)

参数说明

参数名称 参数含义 参数类型 是否必传
callback 参数下发异步回调 FetchAllRemoteConfigCallback

调用示例

private void onFetchAllRemoteConfigCallback(Dictionary<string, object> result) {
    //result:异步获取到的所有在线参数配置
}

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
remoteConfig.AsyncFetchRemoteConfig(onFetchAllRemoteConfigCallback);

5.5 混淆配置

5.5.1 鸿蒙平台

如果打包时需要增加混淆,请将下方代码增加到配置中

./oh_modules/@solarengine/remoteconfig
最近修改: 2025-08-04Powered by