ニュース

Top  >   15. C#とMonoBehaviour  >   Q, 「using UnityEngine.UI;」と書かないとエラーになるのはなぜ?

Q, 「using UnityEngine.UI;」と書かないとエラーになるのはなぜ?

2026/03/18

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

A,結論

  • using UnityEngine.UI; は uGUI の Button、Image、Text などを使うときに必要です。
  • TextMeshPro を使う場合は TMPro 名前空間が必要になります。

原因 / 背景

  • C# はクラスが属する名前空間を解決できないとコンパイルできません。
  • 同じ UI でも uGUI と TextMeshPro では必要な using が異なります。

実装 / 手順

  1. Button、Image、Slider などの uGUI コンポーネントをコードで扱うなら using UnityEngine.UI; を追加します。
  2. TextMeshProUGUI を扱うなら using TMPro; を使ってください。
  3. 必要なコンポーネント型に合わせて using を整理するとエラーを減らせます。

サンプルコード

using UnityEngine;
using UnityEngine.UI;

public class UIButtonExample : MonoBehaviour
{
    [SerializeField] private Button targetButton;

    private void Awake()
    {
        if (targetButton != null)
        {
            targetButton.onClick.AddListener(OnButtonClicked);
        }
    }

    private void OnDestroy()
    {
        if (targetButton != null)
        {
            targetButton.onClick.RemoveListener(OnButtonClicked);
        }
    }

    private void OnButtonClicked()
    {
        Debug.Log("uGUI の Button が押されました。");
    }
}

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

難易度:Level 2(初心者)
対象プラットフォーム:PC,Visual Studio,Unity
関連キーワード:canvas,EventSystem,ugui,ui,エラー,ライブラリ,名前空間

Level 1-2 向けバナー