ニュース

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

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

2026/03/18

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

A,結論

変数が public でないか、シリアライズされていません。

原因 / 背景

  • デフォルトの private 変数はインスペクターに表示されない仕様だからです。
  • 表示だけでなく入力系の構成もそろっているかを確認することが重要です。

実装 / 手順

  1. 変数の前に [SerializeField] を付けます。
  2. Canvas、EventSystem、Raycaster の役割を分けて確認すると原因を切り分けやすくなります。

サンプルコード

using UnityEngine;

public class ExampleReferenceHolder : MonoBehaviour
{
    [SerializeField] private Rigidbody targetRigidbody;

    private void Awake()
    {
        if (targetRigidbody == null)
        {
            targetRigidbody = GetComponent<Rigidbody>();
        }
    }

    private void Start()
    {
        if (targetRigidbody == null)
        {
            Debug.LogError("Rigidbody reference is missing.");
            return;
        }

        Debug.Log("Reference is ready.");
    }
}

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

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

Level 1-2 向けバナー