teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

引用が正しくできないのでコードブロックに変えた

2020/07/20 15:59

投稿

bboydaisuke
bboydaisuke

スコア5339

answer CHANGED
@@ -1,8 +1,12 @@
1
1
  > なぜかInsrantiateで生成したGameObject内にアタッチされてないことになってしまい、参照元がnullとなってしまいます。
2
2
 
3
+ ```csharp
4
+ GameObject o = Instantiate(cell, cellPos, Quaternion.identity);
5
+ o.name = "cell" + i.ToString() + "_" + j.ToString();
3
- > //この箇所がエラーをはいています
6
+ //この箇所がエラーをはいています
4
- > cells[i, j] = o.GetComponent<CellController>();
7
+ cells[i, j] = o.GetComponent<CellController>();
5
8
 
9
+ ```
6
10
  上に書いてある「エラーが起きる行」の指示が正しければ、GetComponent ができない理由は「Insrantiateで生成したGameObject内にアタッチされてない」とかではなくて変数 o が null だからです。つまりインスタンス化に失敗しています。
7
11
 
8
12
  インスタンス化に失敗する理由はいろいろあるでしょう。ありそうなこととしては、GameManager の cell プロパティに「生成したいプレハブ」を **Project ウインドウから** アサインするように書かれていますが、これが設定されていないのでしょう。

1

表現の修正

2020/07/20 15:59

投稿

bboydaisuke
bboydaisuke

スコア5339

answer CHANGED
@@ -5,4 +5,4 @@
5
5
 
6
6
  上に書いてある「エラーが起きる行」の指示が正しければ、GetComponent ができない理由は「Insrantiateで生成したGameObject内にアタッチされてない」とかではなくて変数 o が null だからです。つまりインスタンス化に失敗しています。
7
7
 
8
- GameManager の cell プロパティに「生成したいプレハブ」を **Project ウインドウから** アサインするように書かれていますが、これが設定されていないのでしょう。
8
+ インスタンス化に失敗する理由はいろいろあるでしょう。ありそうなこととしては、GameManager の cell プロパティに「生成したいプレハブ」を **Project ウインドウから** アサインするように書かれていますが、これが設定されていないのでしょう。