Unity Analytics分析服务推出了一项新功能:Remote Settings,该功能主要用于远程实时更改游戏设置,能够在不更新客户端的情况下调整游戏数值。目前该功能已开放测试,所有Unity开发者均可免费使用。今天这篇文章,将由Unity技术经理马瑞,为大家分享Remote Settings的功能与案例。

Remote Settings介绍

通常来说,如果想要改变游戏内的设置,可能需要发布更新包。而如果想远程实时地进行一些更改,可能需要在服务端提供一些解决方案,这很容易导致维护出现问题,并且会产生额外的成本。现在有了Unity Analytics分析服务的新功能Remote Settings之后,就再也不用花费时间研究其他解决方案来对游戏进行热更新了。

使用Remote Settings可以实时修改游戏关键数值,调整游戏难度等级,实现AB测试或触发一些活动事件,例如圣诞节或春节活动等。还可以在Unity Analytics分析服务的控制面板中监控这些实时更改对玩家行为的影响。

一款来自成都开发商制作的儿童游戏《熊猫博士》,其中就使用Remote Settings功能实时设置了游戏在圣诞节或万圣节等节日期间的主题外观。如下图:

023858djqcypeujinwvcwn.gif


只需简单地点击“Sync”按钮进行同步,所有对游戏设置的更改都会即时反应到游戏中,无需等待!

Remote Settings用法

使用Remote Settings非常简单。首先,在Unity项目中启用Analytics分析服务。然后进入Unity项目控制面板:

021042muhcokoptva3o8qp.png

点击左侧面板中的Analytics,可以看到界面上方出现了一个新的按钮 – RemoteSettings,如下图:

021042u01x99l55sgbt818.png

在Remote Settings面板中可以设置游戏变量,现在支持添加bool、float、int或string类型的变量。请注意,string类型变量的长度限制为1024个字符,这个长度应该足以用来传递一些名称、消息或是少量的JSON数据。

021042eotdmhmbedotppbh.png

要在编辑器中使用Remote Settings,需要先从Analytics的控制面板中获取项目的“Secret Key”。点击面板右上方的点状图标,选择Configure。在底部的Feature Settings下,可以看到“Project Secret Key”字段,复制该字段的值并保存。

在“Project Secret Key”下方还可以看到一个Remote Settings的SDK插件,下载该SDK并将其导入项目:

021043xtmt5gmetmme9slg.png

此时,可以在Remote Settings界面中看到之前在Analytics控制面板中设置的所有变量。如下图:

021043hm2iuy9ussfsi8i8.png

从游戏中获取Remote Settings的步骤如下:
首先在场景中新建空的GameObject;
为其添加Remote Settings组件;

021043he7h7m8kqcreqhhz.png

在检视视图中点击“+”为Remote Settings组件添加参数;

021043dlkpz55kiliik18l.png

将带有Remote Settings组件的GameObject拖拽至参数的Object字段;

021044v66cabccllta6ocm.png

在下拉列表中设置需要进行控制的游戏属性或字段;
选择用于控制此组件属性或字段的Remote Setting Key。

021044dkqy2bi1zsym1zjh.png

到此整个Remote Settings就已设置完毕了,可以在编辑器中直接设置游戏关键属性!如果更希望通过代码进行操作,可以看看下面使用C#代码获取游戏属性设置的示例:

[C#] 纯文本查看 复制代码using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { // Use this for initialization void Start() { RemoteSettings.Updated += new RemoteSettings.UpdatedEventHandler(RemoteSettingsUpdated); } void RemoteSettingsUpdated() { Debug.Log(***** 你的新 REMOTE SETTINGS 来了 ******); Debug.Log(RemoteSettings.GetInt(testInt)); Debug.Log(RemoteSettings.GetString(testString)); Debug.Log(RemoteSettings.GetFloat(testFloat)); Debug.Log(RemoteSettings.GetBool(testBool)); Debug.Log(RemoteSettings.GetBool(testFakeKey)); Debug.Log(RemoteSettings.GetBool(testFakeKey, true)); Debug.Log(RemoteSettings.HasKey(qqq)); Debug.Log(RemoteSettings.HasKey(testInt)); Debug.Log(RemoteSettings.GetBool(unity.heatmaps)); } }

结语

关于Remote Settings的功能介绍就到这里。我们也希望大家能够利用该功能,将您绝妙的创意变为卓越的玩家体验!未来我们还会为Remote Settings添加更多功能,例如基于Segement的Remote Settings等,请大家保持关注!如果关于本文内容或是Remote Settings功能有任何疑问,欢迎大家在本帖下方提问。

Unity, Remote Settings, 远程设置, 热更新锐亚教育

锐亚教育 锐亚科技 unity unity教程