質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

988閲覧

NullReferenceException: Object reference not set to an instance of an object SelectItem.Awakeのエラーが出る

1852000

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/11/01 07:28

編集2021/11/01 07:44

前提・実現したいこと

unityでゲームシーン再生ボタンを押すと「NullReferenceException: Object reference not set to an instance of an object
SelectItem.Awake () (at Assets/Script/SelectItem.cs:21)」と「ArgumentNullException: Value cannot be null.
Parameter name: dest」
のエラーメッセージがでて、画面が真っ黒になり、一時停止ボタンが勝手に押されている状態になります。

やりたいことは、ドロップダウンメニューで選んだものに応じてキャンバスと樹木のゲームオブジェクトを変更するというものです。

発生している問題・エラーメッセージ

NullReferenceException: Object reference not set to an instance of an object SelectItem.Awake () (at Assets/Script/SelectItem.cs:21) void Awakeの部分でエラーが発生しています。

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SelectItem : MonoBehaviour { public GameObject tree1,panel1; private GameObject treeA; public GameObject tree2, panel2; private GameObject treeB; public GameObject tree3, panel3; private GameObject treeC; void Awake() { // Canvasを取得する tree1 = treeA.GetComponent<GameObject>(); panel1 = treeA.GetComponent<GameObject>(); tree2 = treeB.GetComponent<GameObject>(); panel2 = treeB.GetComponent<GameObject>(); tree3 = treeC.GetComponent<GameObject>(); panel2 = treeB.GetComponent<GameObject>(); panel3 = treeC.GetComponent<GameObject>(); } void Start() { tree1.SetActive(true);   // この部分にエラーがでます tree2.SetActive(false); tree3.SetActive(false); panel1.SetActive(true); panel2.SetActive(false); panel3.SetActive(false); } public void SelectedListMenuDropdown (Dropdown dropdown) { switch (dropdown.value) { case 0: tree1.SetActive(true); tree2.SetActive(false); tree3.SetActive(false); panel1.SetActive(true); panel2.SetActive(false); panel3.SetActive(false); break; case 1: tree1.SetActive(false); tree2.SetActive(true); tree3.SetActive(false); panel1.SetActive(false); panel2.SetActive(true); panel3.SetActive(false); break; case 2: tree1.SetActive(false); tree2.SetActive(false); tree3.SetActive(true); panel1.SetActive(false); panel2.SetActive(false); panel3.SetActive(true); break; default: break; } } }

補足情報(FW/ツールのバージョンなど)

unity2021.1.2f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimi_no_naka

2021/11/01 09:21

Nullエラーに関しては過去質問や検索でも大量に解決方法が出るのですが自分の事例に当てはめて考える・デバッグする事は出来ないのでしょうか? 人の良い回答者がわざわざ答える前に書いておくとtreeAが空です。 空にならないようにしてください。
1852000

2021/11/01 09:42

調べて解決方法があるものはやってみましたが解決できず、treeAにはオブジェクトをおているので空ではないはずなのに空というエラーが出ているので質問させていただきました。
fiveHundred

2021/11/01 10:15

そもそも、treeA(など)はコードを見る限りprivateであり、その場合は設定できません。 根本的に矛盾しています。 tree1(など)と混同していないでしょうか。
退会済みユーザー

退会済みユーザー

2021/11/01 11:36

調べ方が足りないと思いますよ。NullReferenceException はデバッガを使って何が null かを調べれば 99% 解決できるはず。デバッガが使えないのではここで質問するレベルに達してません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問