Menu
CoddyTech

インスペクターのフィールド

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 7/67。

スクリプトのpublicフィールドは、スクリプト名の下にあるInspectorに表示され、シーンを作成する人なら誰でもコードに触れずに変更できます。これにより、同じSpinnerスクリプトで、ファンを速く回転させたり、風車をゆっくり回転させたりできます。コードは同じでも、オブジェクトごとに異なる数値を設定できます。

コード内の数値は、スクリプトを最初に追加したときにUnityが使う初期値にすぎません。その後は、シーンに保存された値が優先されます。ここではコードに3とありますが、このロケットのInspectorには8と表示されているため、ロケットは毎秒8ユニット上昇します。

public float speed = 3f;   // このロケットでは Inspector に 8 と表示される

void Update()
{
    transform.position += new Vector3(0, speed * Time.deltaTime, 0);
}

コード内の= 3fを変更しても、すでにシーンにあるロケットの値は変わりません。これはUnity初心者の多くが少なくとも一度はつまずく点です。数値が無視されているように見えたら、Inspectorを確認しましょう。Hierarchyでオブジェクトを選択すると、そのフィールドを確認できます。

challenge icon

チャレンジ

簡単

エレベーターの Inspector では lift が 6 に設定されていますが、スクリプトはこのフィールドを無視し、常に毎秒 2 単位上昇します。Inspector の設定にかかわらず、エレベーターが毎秒 lift 単位上昇するように Update() を変更してください。

Hierarchy で Elevator を選択して lift を確認し、Play をクリックしてから Check をクリックしてください。

自分で試してみよう

using UnityEngine;

public class Elevator : MonoBehaviour
{
    public float lift = 2f;

    void Update()
    {
        transform.position += new Vector3(0, 2 * Time.deltaTime, 0);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Unityスクリプティングの基礎のすべてのレッスン