yuta_san0629
@yuta_san0629 (蜜柑 猫)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Unityにてエラー。変数の代入について具体的に何を指してダメと言っているのかが分からない

https://qiita.com/yuta_san0629/questions/e6c66b7ff2d71a96f7d3#answer-2149d1a73c023f65624e
↑に関連した質問になります。

エラーにて
UnassignedReferenceException: The variable gameOverPanel of NewBehaviourScript has not been assigned.
You probably need to assign the gameOverPanel variable of the NewBehaviourScript script in the inspector.

と出ました。日本語訳して確認すると

UnassignedReferenceException: NewBehaviourScriptの変数gameOverPanelが割り当てられていません。
おそらく、インスペクタでNewBehaviourScriptスクリプトの変数gameOverPanelを代入する必要があります。

と出るのですが。?となってます。

まだまだ読み解く力が無いのですが

スクリーンショット 2024-05-31 230410.png

この部分がおかしいと言ってるのだと思い直そうとしたんですが(Game Over Panelの部分。以下のGameManagerスクリプトにゲームオーバー時の再読み込みの変数を書き込んである※1)

スクリーンショット 2024-05-31 230624.png

これをドロッグアンドドロップしても当てはまりません。

スクリーンショット 2024-05-31 230831.png[※1]

https://www.youtube.com/watch?v=IbHhV_-8VxQ&t=1s
元より、↑の動画を参考にして、作っておりまして

スクリーンショット 2024-05-31 231258.png

動画内でもこちらの[GameOverPanel]をそのまま持っていっています(2:00:41あたり)

一体なぜ、このようなエラーが出てくるのでしょうか。
なんというか、もう一個またゲームオーバーようにscriptを作らなければいけないのでしょうか。なんというかUnityに門前払いをされているような感覚で、途方に暮れています。

現状、方法がわからな過ぎて、前に進めない状態です。
参考にした動画の通りに全て組んでいます。

0

1Answer

Unity の問題って状況の再現が難しいからなかなか質問の回答が集まらないだろうなぁ

GameOverPanel という名前の GameObject をドラッグ & ドロップしてインスペクタのところに入れてほしいと言われているところはわかる。

私がやらかした経験的には、実行中に上記操作を行ってしまい、実行を停止した時にその記録が無くなって何もない状態になってしまった。だから「代入してないよ」と怒られた。というのが思い当たった。

もっと良い回答をもらうための質問の方法

というのは前座です。この質問への回答というより、学びたてで質問の仕方そのものが分からないと思うので、その話をします。

もっとマトモな解決方法が欲しい場合は、回答者の頭の中でアナタの手元の状況を完全に再現できるようにする必要があります。
そのためには、色んなスクショを撮って乗せる必要があります。必要ならスクショに矢印を書き込んで自分がどんな操作をしたのかを書いておきましょう。

  • 上で述べた「実行してるかしてないか」とか、全然関係なさそうなところがバグの原因になっていたりするので、とにかく全部ぐらいの勢いで載せよう。
  • (2時間もある)動画のとおりにやりました。と言われても、長すぎて回答者は見たくないのと、仮に頑張って見たとしても本当に全く間違えずに動画通りにやってるかどうかはわからないので、頭の中で状況を再現するのが難しいです。
    • 「全く間違えずに」というのが肝です。初心者は何が大事で何が大事ではないのかが分からないからこそ初心者なので、細かい順番とか全部丁寧に真似していなかったら「本当は大切なことを大切じゃないと思って飛ばしてた」みたいな事があり得ます。(これは逆に動画教材から学ぶ時に大事なことでもあります。何が大事か見極められないうちは全部徹底的に真似しよう)

図で説明する方法の例

  • Unity 全体のスクショにパワポ等で矢印を書き込み、どう操作したのかを正確に表現

    • 操作で画面が切り替わるなら逐一それもスクショ
    • 例えば私の冒頭の説明は悪い例です。
      • GameOverPanel という名前の GameObject をドラッグ & ドロップしてインスペクタのところに入れてほしいと言われているところはわかる。

      • ↑ココに出てくる単語の意味が私の思ってる意味とアナタの思ってる意味が違う/そもそも意味がわからない単語があるかもしれない。例えば GameObject とか多義語だし。
  • 関連するソースコードの完全なスクショ or コピー

    • 例えば今回の場合は、GameOverPanel の型が誤っているかもしれないけど、スクショがないのでわからない
2Like

Comments

  1. @yuta_san0629

    Questioner

    なるほど……勉強になります。
    次からは具体的に、そしてわかりやすく理解しやすい形式と言うのを頭に入れ質問しようかと思います。

    本当にありがとうございます……なんて感謝申し上げればいいのか……
    とにかく、今は色々と詰め込み過ぎたのを反省して、一つ一つ基礎からやり直します。
    「“何がわからないのか”が分からない」を『“何がわからないかのか”を分かる』よう、きちんと基礎を理解しようと思います。

  2. 「“何がわからないのか”が分からない」を『“何がわからないかのか”を分かる』よう、

    この意識を持てるようになったことが大きな一歩だ。

    基礎の理解も大事だけど、普段から問題を切り分けて考えること、問題を明確に表現するにはどうすればよいか考えることが大切。

    • つまり『“何がわからないかのか”を分かる』ように、問題を整理して明確に表現するのが大事

    基礎的事項は↑で整理した問題の中に現れると思うので、必要にかられて自然と理解することになります。

Your answer might help someone💌