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

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

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

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

Unity

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

Q&A

解決済

2回答

3684閲覧

GetComponent<Text>().text

diatemis

総合スコア17

C#

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

Unity

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

0グッド

0クリップ

投稿2016/07/11 04:55

編集2016/07/11 05:42

UnityとC#を使って開発をしています。

public GameObject message; void Update() { if(条件式A) { 処理X; message. GetComponent<Text>().text = "テスト";(以下、処理Y) } ※ }

このようなプログラムで、条件式Aを満たした場合、処理Xは行われますが、処理Yは反映されません。特に何か例外が発生している様子もありません。
しかし、※の位置に処理Yを置いた場合、処理Yは問題なく反映されます。

なぜ、こうなるのかの考察、回答をいただきたいです。

【追記】
処理X

MyObject o = obj.GetComponent<MyObject>(); if( o != null){print("エラー");} else{ obj.Test(); print("正常");}//←毎回こちらが実行されている

処理Xになんらか問題がありそうです……

NullReferenceException: Object reference not set to an instance of an object
て言うのがでてました……

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

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

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

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

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

urahimono

2016/07/11 05:06

ちなみに条件式Aと処理Xは、どんなものでも発生するのでしょうか。 例えばif( true )やint x = 0;のようなものでも同様に発生しますか。
diatemis

2016/07/11 05:59

閲覧、ご意見ありがとうございます。今回は自己解決できました。 ご迷惑をおかけしました。
guest

回答2

0

無事解決されたようでなによりです。

少し余談ですが、ConsoleウィンドウのErrorPauseをONにすることで、例外やNullアクセスなどエラーが発生した際にEditorの実行が停止してくれるようになって不具合の発見に役立ちます。
イメージ説明

参考になればと思います。

投稿2016/07/11 06:11

urahimono

総合スコア714

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

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

0

自己解決

処理Yの message、処理Xのobjのアタッチ方法に問題があったことがわかりました。
その後、自己解決に至りました。
閲覧、ご検討ありがとうございました

投稿2016/07/11 06:02

編集2016/07/11 06:05
diatemis

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問