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 の新機能
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.