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

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

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

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

Unity3D

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

Unity

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

Q&A

解決済

2回答

1469閲覧

エラー”NullReferenceException: Object reference not set to an instance of an object”

1nanana

総合スコア15

C#

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

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2020/10/21 10:00

view〇(数字)のオブジェクトに〇(数字)の名前のマテリアルをスクリプトで反映させたいです。
以下のスクリプトを実行して最初は反映されていたのですが、途中からエラーが出るようになりました。
きっと何かをいじってしまったのだと思いますが、、

<エラー内容>
NullReferenceException: Object reference not set to an instance of an object
Automation.Start () (at Assets/Automation.cs:30)

30行目は
”m_Renderer1 = view1.GetComponent<Renderer>();”
のところです。その下も同じような記述が続いているのに、これだけ反応したのも疑問です。
よろしくお願いします。

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Automation : MonoBehaviour 6{ 7 private GameObject view1, view2, view3, view4, view5, view6, view7, view8, view9, view10; 8 private GameObject Sphere; 9 public Texture m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8, m_9, m_10; 10 Renderer m_Renderer1, m_Renderer2, m_Renderer3, m_Renderer4, m_Renderer5, m_Renderer6, m_Renderer7, m_Renderer8, m_Renderer9, m_Renderer10; 11 12 // Start is called before the first frame update 13 void Start() 14 { 15 16 view1 = GameObject.Find("view1"); 17 view2 = GameObject.Find("view2"); 18 view3 = GameObject.Find("view3"); 19 view4 = GameObject.Find("view4"); 20 view5 = GameObject.Find("view5"); 21 view6 = GameObject.Find("view6"); 22 view7 = GameObject.Find("view7"); 23 view8 = GameObject.Find("view8"); 24 view9 = GameObject.Find("view9"); 25 view10 = GameObject.Find("view10"); 26 Sphere = GameObject.Find("Sphere"); 27 28 29 m_Renderer1 = view1.GetComponent<Renderer>(); 30 m_Renderer2 = view2.GetComponent<Renderer>(); 31 m_Renderer3 = view3.GetComponent<Renderer>(); 32 m_Renderer4 = view4.GetComponent<Renderer>(); 33 m_Renderer5 = view5.GetComponent<Renderer>(); 34 m_Renderer6 = view6.GetComponent<Renderer>(); 35 m_Renderer7 = view7.GetComponent<Renderer>(); 36 m_Renderer8 = view8.GetComponent<Renderer>(); 37 m_Renderer9 = view9.GetComponent<Renderer>(); 38 m_Renderer10 = view10.GetComponent<Renderer>(); 39 40 m_Renderer1.material.SetTexture("_MainTex", m_1); 41 m_Renderer2.material.SetTexture("_MainTex", m_2); 42 m_Renderer3.material.SetTexture("_MainTex", m_3); 43 m_Renderer4.material.SetTexture("_MainTex", m_4); 44 m_Renderer5.material.SetTexture("_MainTex", m_5); 45 m_Renderer6.material.SetTexture("_MainTex", m_6); 46 m_Renderer7.material.SetTexture("_MainTex", m_7); 47 m_Renderer8.material.SetTexture("_MainTex", m_8); 48 m_Renderer9.material.SetTexture("_MainTex", m_9); 49 m_Renderer10.material.SetTexture("_MainTex", m_10); 50 51 Shader shader = Shader.Find("Unlit/Texture"); 52 view1.GetComponent<Renderer>().material.shader = shader; 53 view2.GetComponent<Renderer>().material.shader = shader; 54 view3.GetComponent<Renderer>().material.shader = shader; 55 view4.GetComponent<Renderer>().material.shader = shader; 56 view5.GetComponent<Renderer>().material.shader = shader; 57 view6.GetComponent<Renderer>().material.shader = shader; 58 view7.GetComponent<Renderer>().material.shader = shader; 59 view8.GetComponent<Renderer>().material.shader = shader; 60 view9.GetComponent<Renderer>().material.shader = shader; 61 view10.GetComponent<Renderer>().material.shader = shader; 62 63 64 } 65 66} 67

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

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

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

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

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

guest

回答2

0

自己解決

質問直後に解決しました。失礼しました。

他のオブジェクトにつけてたスクリプトとの相互作用で反映ができていなかったみたいです。スクリプトの実行順序を指定したらできました。

投稿2020/10/21 10:07

1nanana

総合スコア15

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

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

0

まず、そこんところで実行を止めて、view1に何が入ってるのか見てみよう。

投稿2020/10/21 10:04

y_waiwai

総合スコア88051

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

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

1nanana

2020/10/21 10:09

ご回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問