Version: 2018.4
Managing Remote Settings in the Unity Editor
Remote Settings 脚本

远程设置 (Remote Settings) 组件

使用 Remote Settings 组件可以控制场景中其他组件的属性而无需编写任何代码。Remote Settings 组件是 Remote Settings 插件的一部分;可从 Unity Asset Store 下载该插件。

使用 Remote Settings 组件之前,必须在项目中启用 Remote Settings,还应该使用 Unity Analytics Dashboard 创建 Remote Settings 键/值对

您可以将 Remote Settings 组件与想要控制的另一组件放在同一游戏对象上,或将其放在其他游戏对象上。唯一的要求是 Remote Settings 组件和所有受控组件都在同一场景中处于有效状态。

使用 Remote Settings 组件

要将一个远程设置连接到组件属性或字段:

  1. 转至 Window > Unity Analytics > Remote Settings 以打开 Remote Settings 窗口。

  2. 选择包含了待连接设置的配置(__Release__ 或 __Development__)。

  3. 转至要添加 Remote Settings 组件的游戏对象的 Inspector 窗口。

  4. 单击 Add Component 按钮。

  5. 在列表中查找 Analytics > RemoteSettings 脚本。

  6. 单击 Add Component 以将 Remote Settings 组件添加到游戏对象。

  7. 要添加新的参数映射,请单击 Remote Setting 组件的 Parameters 列表底部的 + 图标。

  8. 将需要远程控制的游戏对象或组件拖入参数的 Object 字段。

  9. 在参数的 Field 下拉列表中选择要控制的属性或字段。

  10. 选择要用于控制此组件属性或字段的 Remote Setting Key

  11. 单击 + 图标以添加其他参数。

如果没有任何 Remote Settings Key 名称显示在列表中,请打开 Remote Settings 窗口(菜单:__Window__ > Unity Analytics > Remote Settings__),然后单击 Refresh__。如果 Remote Settings 仍未显示在此窗口中,请确认互联网连接正常并且项目已正确设置(请参阅启用 Remote Settings)。

如果键名称列表中出现错误键,请打开 Remote Settings 窗口(菜单:__Window__ > Unity Analytics > Remote Settings__),然后将 Active Configuration__ 设置为包含正确键集合的配置。

Remote Settings 组件无法设置 Unity 后续在场景中加载的预制件(除组件本身外)的变量。同样,后续在场景中加载的 Remote Settings 组件只能设置属于同一预制件的对象的变量。使用多个 Remote Settings 组件可以应对这些类型的情况。

设置非原始属性

使用 Remote Settings 组件可以直接设置对象的原始字段和属性。但是,要设置对象的非原始成员的变量,必须编写一些额外代码。最简单的方法是将原始类型属性添加到某个可使用 Remote Settings 组件来设置的对象。然后,实现这些属性的资源库 (setter) 函数来更新非原始对象的目标变量。

代码示例

以下示例中的类将会设置分配给渲染游戏对象的材质的基础颜色。为此,该类定义了一个原始字符串类型属性来接受 HTML 样式的颜色字符串。此属性的资源库 (setter) 会解析字符串并相应地设置材质颜色。

using UnityEngine;

public class RemoteColorChanger : MonoBehaviour
{
    private string _colorString = "";
    public string ColorString {

        get { 
            return _colorString; 
        }

        set { 
            Color colorObject;
            if (ColorUtility.TryParseHtmlString (value, out colorObject)) {
                _colorString = value;
                Renderer renderer = GetComponent<Renderer> ();

                if (renderer != null) {
                    MaterialPropertyBlock materialProperties = new MaterialPropertyBlock ();
                    renderer.GetPropertyBlock (materialProperties);
                    materialProperties.SetColor ("_Color", colorObject);
                    renderer.SetPropertyBlock (materialProperties);
                } 
            } else {
                Debug.LogWarning ("Invalid color string: " + value);
            }
        }
    }
}

使用代码示例

您可以将此 RemoteColorChanger 脚本添加到具有 Renderer 组件的任何 GameObject。随后可以使用 Remote Settings 组件将设置键映射到 ColorString 属性。在本示例中,此脚本是 Cube 对象的组件。

Remote Settings 组件映射 ColorString Remote Setting 键
Remote Settings 组件映射 ColorString Remote Setting 键

Analytics Dashboard 的 Remote Settings 页面上匹配的键/值对如下所示:

Analytics Dashboard 上定义的 ColorString 设置
Analytics Dashboard 上定义的 ColorString 设置

使用同样的方法可以设置任意非原始值。



  • 2017–05–30 页面已发布并进行了编辑审查

  • 截至 2017–05–30,服务与 Unity 5.5 之后的版本兼容,但是版本兼容性可能会发生变化。

  • Unity 2017.1 中的新功能

Managing Remote Settings in the Unity Editor
Remote Settings 脚本