ニュース

Top  >   6. GameObject・Component・Transform  >   Q, 「MissingComponentException」でクラッシュする

Q, 「MissingComponentException」でクラッシュする

2026/03/19

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

A,結論

必要なコンポーネントが対象 GameObject に存在するか、例外のスタックトレースで確認します。

原因 / 背景

  • GetComponent<T>() は、対象がない場合は通常 null を返します。その後の参照で MissingComponentException や NullReferenceException が発生する場合があります。

実装 / 手順

  1. Console の最初の例外から、どの GameObject のどのコンポーネントが必要か確認します。
  2. 対象にコンポーネントを追加するか、GetComponent / TryGetComponent の結果を確認してから使います。
  3. 同じ GameObject 上に常に必要なコンポーネントなら RequireComponent 属性を検討します。子オブジェクトや別オブジェクトには自動で追加されません。

サンプルコード

using UnityEngine;

[RequireComponent(typeof(AudioSource))]
public class MissingComponentGuard : MonoBehaviour
{
    private AudioSource audioSourceComponent;

    private void Awake()
    {
        audioSourceComponent = GetComponent<AudioSource>();

        if (audioSourceComponent == null)
        {
            Debug.LogError("AudioSource が見つかりません。");
        }
    }
}

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

難易度:Level 2(初心者)
対象プラットフォーム:PC,Visual Studio,Unity
関連キーワード:C#,UI,aca

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