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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

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

Q&A

解決済

2回答

3043閲覧

Unityの教科書の通りに行きません。

uyou0003

総合スコア6

Unity

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

0グッド

0クリップ

投稿2021/07/04 12:40

編集2021/07/04 12:51

前提・実現したいこと

Unityの教科書Unity2020完全対応版の4-5でコードを入力してみたのですが上手くいきません。コードを全部再確認しても分かりません。エラーの文をDeepL翻訳で翻訳しても意味がよく分かりません。誰か教えてください。

バージョン

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

エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object
GameDirector.Update () (at Assets/GameDirector.cs:24)

ソースコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameDirector : MonoBehaviour
{
GameObject car;
GameObject flag;
GameObject distance;

void Start() { this.car = GameObject.Find("car"); this.flag = GameObject.Find("flag"); this.distance = GameObject.Find("Distance"); } void Update() { float length = this.flag.transform.position.x - this.car.transform.position.x; if(length>=0) { this.distance.GetComponent<Text>().text = "ゴールまで" + length.ToString("F2") + "m"; } else { this.distance.GetComponent<Text>().text = "ゲームオーバ"; } }

}

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

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

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

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

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

guest

回答2

0

参照している変数がNullの場合に発生するエラーとなります。
24行目の前で、以下が問題ないか確認してみてはいかがでしょうか。

・「this.distance」がNullになっていませんか?
※Hierarchy上に、”Distance”というGameObjectがないとNullになる可能性があります。スペルミスなどもご確認ください。
・「this.distance」に対して、Textコンポーネントはアタッチされていますか?


2021.07.08追記

以下を確認してみてください。

1、処理に、以下の「追加START〜追加END」までを追加して実行してください。
コンソールに「Nullです」と表示されるかを、ご確認ください。

C#

1void Start() 2{ 3 this.car = GameObject.Find("car"); 4 this.flag = GameObject.Find("flag"); 5 this.distance = GameObject.Find("Distance"); 6 7 // 追加 START 8 if (this.distance == null) { 9 Debug.Log("Nullです"); 10 } 11 // 追加 END 12}

2、シーン内のGameObjectを確認して、添付の画像の様な設定になっているか確認してください。
※質問者さんのUnityのシーンのキャプチャを質問に貼り付けてもらえれば、こちらでも確認します
イメージ説明


2021.07.08 再度追記

以下の手順で、"Distance"オブジェクトを作ってください。作るとエラーが解消されるはずです。
手順1、Hierarchy上で右クリック ー> UI ー> Text を選択
イメージ説明

手順2、Canvas配下に、Text が生成されることを確認
イメージ説明

手順3、上記で生成された Text の名称を、 Distance に変更する
イメージ説明

投稿2021/07/04 12:54

編集2021/07/08 13:02
tsuki01

総合スコア1751

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

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

uyou0003

2021/07/07 12:53

チェックしてみましたが分かりませんでした。すみません。どうすれば直りますか。直す部分と直し方を記入するまたは簡単に説明してください。
tsuki01

2021/07/08 09:39

回答を追記しました。 追記した内容を一度ご確認ください。 >どうすれば直りますか。直す部分と直し方を記入するまたは簡単に説明してください。 まずは原因の特定をするために回答しました。なので、先ずは原因の特定にお付き合いください。
uyou0003

2021/07/08 12:45

撮りました。明らかに違います。どうすればいいのか教えてください。
tsuki01

2021/07/08 12:53

参考にしている教科書に、"Distance"オブジェクトの生成方法は記載されていませんでしたか? これから回答に追記しますが、その間に教科書の方もご確認ください。
tsuki01

2021/07/08 13:03

回答に手順を追記しました。 エラーの根本原因は、"Distance"というゲームオブジェクトがシーン上に存在しなかったからです。 追記した手順で "Distance"というゲームオブジェクトを追加すれば、問題は解決するはずです。
uyou0003

2021/07/09 12:36

ごめんなさい。確かめている途中にいつの間にかデータが更地になったのでしばらく解決しないと思います。
tsuki01

2021/07/09 14:09

返信ありがとうございます。お待ちしております。
uyou0003

2021/10/30 11:38

やっと戻ってきました。問題は発見しましたが今度は起動する度にDistanceが消えてしまいます。どうすればいいですか。
uyou0003

2021/10/30 11:39

(起動は三角ボタンを押すことです。分かりにくくてすみません。)
tsuki01

2021/10/30 16:17

質問者さんの今後のためにご指摘させてください。 ・数ヶ月放置はかなり失礼な行為です。他の回答者さんには絶対にしないでください(1週間放置でも失礼かと思います) ・「説明してください」「どうすればいいですか」といった、自分で調べる気がないように受け取れる発言も絶対に他でしないでください ・質問する際には、自分で調べたこと・修正したこと なども明確に記載してください 今回のコメントに関しては、質問者さんが何をしたのか読み取りきれません。 ソースコードに修正を加えたりしましたか? その他、何かプロジェクトに変更を加えましたか? 私が追記した手順通りにDistanceオブジェクトを追加しましたか?
uyou0003

2021/11/23 10:17

すみません。気をつけます。
guest

0

自己解決

これがスクリーンショットです。

投稿2021/07/08 12:44

uyou0003

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問