###前提・実現したいこと
Unityにて、ボタンを作成し、コントラストを切り替えようとしています。
コントラストのスクリプトはアセットからダウンロードした公式のスクリプトを使っています。
###発生している問題・エラーメッセージ
GetComponent<ContrastEnhance>().enabled でスクリプトを取得し、オン/オフの切り替えをしようと試みているのですが、どうにも使えないようなのです。
###該当のソースコード
ボタン側のスクリプト //ボタンを押したとき count += 1; if (count % 2 == 0) { button.GetComponent<Image>().color = new Color(1, 0, 0); GetComponent<Text>().text = "コントラスト ON"; Allmanege.cont_enhance = 1; } else { button.GetComponent<Image>().color = new Color(1, 1, 1); GetComponent<Text>().text = "コントラスト OFF"; Allmanege.cont_enhance = 0; } コントラスト切り替え側のスクリプト if (cont_enhance == 0) { GetComponent<ContrastEnhance>().enabled = true; } if (cont_enhance == 1) { GetComponent<ContrastEnhance>().enabled = false; }
エラー文
NullReferenceException: Object reference not set to an instance of an object Allmanege.Update()(at Assets/Scripts/kyuzyo/Allmanege.cs:602)
Allmanegeはスクリプト名、kyuzyoはscene名です。
###試したこと
電球マークをクリックし、
using UnityStandardAssets.ImageEffects ```を加えてみたのですが、うまくいきませんでした。 ###補足情報(言語/FW/ツール等のバージョンなど) Unity 5.6.0f3 使用言語 C#
Allmanege全体のコードはご提示可能でしょうか。長すぎて投稿できないようでしたら、Updateメソッドだけでもご提示いただけると問題点が見つかりやすいかと思います。
Updateだけでも長すぎて投稿できなかったため、2つに分けて質問文として投稿させていただきました。どうぞよろしくお願いします。
なるほど、でしたらAllmanege.csの602行目の周辺だけでも可能ですか?メッセージを見るに、そこが怪しいようですが...(もしご提示のコードの中に602行目があるのであれば、どの部分でしょうか)
602行あたりのコードは コントラスト切り替え側のスクリプト より下のコードです。
もう一つお伺いします。Allmanegeはカメラにアタッチされたスクリプトで、コントラストエンハンスもそのカメラにアタッチされている、という状況でしょうか。
いえカメラにはコントラストエンハンスのみをつけてます。そこが原因なのでしょうか。
回答1件
あなたの回答
tips
プレビュー