ニュース

Top  >   15. C#とMonoBehaviour  >   Q, インスペクターから変数の値を変更したいのに表示されない

Q, インスペクターから変数の値を変更したいのに表示されない

2026/03/18

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

Inspectorに表示する値は、Unityがシリアライズできるフィールドとして宣言します。通常は [SerializeField] private を使います。

原因 / 背景

publicでも static・const・readonly・通常のプロパティ、未対応の型はそのままではシリアライズされません。

実装 / 手順

  1. [SerializeField] private float speed = 1f; のように、対応型のインスタンスフィールドを宣言します。
  2. Consoleのコンパイルエラーを解消し、対象コンポーネントを選び直します。
  3. 独自クラスは [System.Serializable]、参照するUnityオブジェクトは対応する型で宣言します。Dictionaryなどは別の保存方法を検討します。

サンプルコード

using UnityEngine;

public class SpeedSettings : MonoBehaviour
{
    [SerializeField] private float speed = 1f;
}

※ 実機確認が必要な項目は、Editor だけで判断せず対象デバイスでも必ず動作確認してください。

難易度:Level 1(入門)
対象プラットフォーム:Unity
関連キーワード:canvas,EventSystem,ugui,インスペクター,変数

Level 1-2 向けバナーLevel 3-5 向けバナー 1Level 3-5 向けバナー 2