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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

解決済

タイマーが実装できません

assam00
assam00

総合スコア1

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

1回答

0評価

0クリップ

161閲覧

投稿2022/05/14 08:44

編集2022/05/15 00:23

プログラミング初心者です
以下のコードでタイマーを実装しようとしたのですが、
NullReferenceException: Object reference not set to an instance of an object
Timer.Update () (at Assets/Timer.cs:24)
のようにエラーが出て動きませんでした。
どなたか対処法を教えていただくと助かります。
バージョン 
Unity 2021.3.2f1 personal

追記
該当するコードはこちらで全文なのですが、こちらのスクリプトをUnityでアタッチした際に動かなくなるという質問です。
ヒエラルキー内でMain>Canvas>TimerTextのようにUIオブジェクトを作成し、
TimerTextにスクリプトをアタッチしました。

アセットストアにてStandard Assets (for Unity 2018.4)を使用しているのですが、
Assets>SrandardAssets>Utility>EventSystemChecker.csにて、
18行目 obj.AddComponent<StandaloneInputModule>().forceModuleActive = true;に旧型式ですとの表記がありました。
関係ないかもしれないですが追記しておきます。

該当箇所のスクリーンショットを追加しました。

Timer.cs

C#

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Timer : MonoBehaviour { public static float time; // Start is called before the first frame update void Start() { time = 0; } // Update is called once per frame void Update() { if (GoalJudge.goal == false) { time += Time.deltaTime; } int t = Mathf.FloorToInt(time); Text uiText = GetComponent<Text>(); uiText.text ="Time:" + t; } }

EventSystemChecker.cs

C#

using System; using System.Collections; using UnityEngine; using UnityEngine.EventSystems; public class EventSystemChecker : MonoBehaviour { //public GameObject eventSystem; // Use this for initialization void Awake () { if(!FindObjectOfType<EventSystem>()) { //Instantiate(eventSystem); GameObject obj = new GameObject("EventSystem"); obj.AddComponent<EventSystem>(); obj.AddComponent<StandaloneInputModule>().forceModuleActive = true; } } }

イメージ説明
イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai
y_waiwai

2022/05/14 08:48

コード全体を提示しましょう 一部分だけ出されても、どーしよーもないです
assam00
assam00

2022/05/14 08:49

23行目 Text uiText = GetComponent<Text>(); にてuiTextがnullになってしまい、その後の処理がうまくいっていないようです。
fiveHundred
fiveHundred

2022/05/14 08:53

Timerと同じゲームオブジェクトにTextをアタッチしていますか?
assam00
assam00

2022/05/14 08:56 編集

言葉足らずですみません 該当するコードはこちらで全文なのですが、こちらのスクリプトをUnityでアタッチした際に動かなくなるという質問です。
y_waiwai
y_waiwai

2022/05/14 08:53

それを質問文に追記しましょう また、他に調べたこと、わかっていることがあればすべて書き出しましょう。
assam00
assam00

2022/05/14 09:00

ヒエラルキー内でMain>Canvas>TimerTextのようにUIオブジェクトを作成し、 TimerTextにスクリプトをアタッチしました。
fiveHundred
fiveHundred

2022/05/14 09:17

現状のヒエラルキーはどうなっていますか? 画像などで明記してください。
assam00
assam00

2022/05/14 09:26 編集

スクリーンショットを追加しました。 ご覧いただけますと幸いです

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。