Remote Settings コンポーネント を使用すると、コードを作成せずにシーンの他のコンポーネントのプロパティーを制御できます。Remote Settings コンポーネントは Remote Settings プラグインの一部で、Unity Asset Store からダウンロードできます。
Remote Settings コンポーネントを使用する前に、プロジェクトの Remote Settings を有効 にし、Unity Analytics Dashboard を使用して Remote Settings の Key (キー) と Value (値) の組を作成する 必要があります。
Remote Settings コンポーネントは、制御する他のコンポーネントと同じゲームオブジェクトに配置したり、別のゲームオブジェクトに配置したりできます。唯一必要なのは、Remote Settings コンポーネントと制御されるコンポーネントの両方が同じシーンでアクティブであることです。
以下の手順で Remote Settings をコンポーネントのプロパティー、または、フィールドに接続します。
Window > Unity Analytics > Remote Settings の順に選択し、Remote Settings ウィンドウを開きます。
接続する設定を Configuration (Release または Development) で選びます。
Remote Settings コンポーネントを設定したいゲームオブジェクトの Inspector ウィンドウに移動します。
Add Component ボタンをクリックします。
リストから Analytics を選択します。
RemoteSettings スクリプトをクリックして、ゲームオブジェクトに Remote Settings コンポーネントを加えます。
新しいパラメーターマッピングを加えるには、Remote Setting コンポーネントの Parameters リストの下の方にある + アイコンをクリックします。
遠隔的に制御したいゲームオブジェクト、または、コンポーネントを Parameters の Object フィールドにドラッグします。
Parameters の Field ドロップダウンリストで制御したいプロパティー、または、フィールドを選択します。
コンポーネントのプロパティー、または、フィールドを制御するために使用する Remote Setting Key を選択します。
パラメーターを加えるには + アイコンをクリックします。
リストに Remote Settings Key の名が表示されていない場合は、Remote Settings ウィンドウ (menu: Window > Unity Analytics > Remote Settings) を開き、Refresh をクリックします。リモート設定がこのウィンドウに表示されない場合は、インターネットに接続されていることと、プロジェクトが正しく設定されていることを確認してください (Remote Settings の有効化 を参照)。
キー名のリストに誤ったキーが表示された場合は、Remote Settings ウィンドウ (menu: Window > Unity Analytics > Remote Settings) を開き、Configuration に正しいキーを含む設定を選択します。
Remote Settings コンポーネントでは、コンポーネント自体よりも後にシーンでロードされる プレハブ の変数を設定することはできません。同様に、後からシーンにロードされる Remote Settings コンポーネントは、同じプレハブの一部であるオブジェクトの変数しか設定できません。このような状況を処理するには、複数の Remote Settings コンポーネントを使用します。
Remote Settings コンポーネントを使用して、オブジェクトのプリミティブなフィールドとプロパティーを直接設定することができます。ただし、オブジェクトの非プリミティブなメンバーの変数を設定するには、追加のコードを作成する必要があります。最も簡単な方法は、Remote Settings コンポーネントを使用して設定できるプリミティブ型のプロパティーをオブジェクトに追加することです。 次に、これらのプロパティーのセッター関数を実装して、非プリミティブなオブジェクトの意図する変数を更新します。
コード例
下の例では、クラスは、レンダリングされたゲームオブジェクトへ割り当てられたマテリアルの基本色を設定します。これを行うために、クラスは HTML スタイルの色文字列を取るプリミティブな文字列型のプロパティーを定義します。プロパティーのセッターはその文字列をパースし、それに応じてマテリアルの色を設定します。
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
コンポーネントを持つすべての ゲームオブジェクト
に加えられます。それから、Remote Settings コンポーネントを使用して Setting Key を ColorString
プロパティーにマップします。この例では、スクリプトは Cube
オブジェクトのコンポーネントです。
Analytics Dashboard の Remote Settings ページの一致する Key-Value の組は以下のように表示されます。
同じ方法を使って、どんな非プリミティブな値でも設定できます。
2017–05–18 編集レビュー を行ってパブリッシュされたページ
2017–05–30 現在、サービスは Unity 5.5 以降と互換性があります。ただし、バージョンの互換性は変更されることもあります。
Unity 2017.1 の新機能