質問: hitColliders[1].gameObject.GetComponent(); で入手しているんですが、どうしても NullReferenceException: Object reference not set to an instance of an object というエラーコードが出ます。 hitColliders[1]の後を .gameobject .GetComponent(); と一つだけにしても同じエラーです。 しかし .transform.position にすると位置情報は入手できました。なので hitColliders[1]はからじゃないと思います。 ほかに足りないところがありましたら記入します。 解決方法をご存知の方がいたらよろしくお願いします。
回答: 解決しました。 どうやらCerulean[]に配列の長さを入れてなかったのが悪かったそうです。 ``` // 近くのCeruleanを探知 void SearchCerulean(Vector3 center){ // 球状の範囲で、その中にあるオブジェクトを取得 (位置、半径) Collider[] hitColliders = Physics.OverlapSphere(center, Search_Radius); int i = 0; int n = 0; bool fast = false; Ceruleans = new GameObject[hitColliders.Length]; // **ここを追加** // hitColliders.Lengthで入手したオブジェクトの数を取得 while(i < hitColliders.Length){ // それがセルリアンタグを持っているか? switch(hitColliders[i].tag){ // 持っていたら保存 case "Cerulean": // 初期更新 if(fast == false){ Ceruleans[1] = hitColliders[i].gameObject; fast = true; }else{ n = 0; // 近いやつを順位つけ while(Comparison(hitColliders[i].transform, Ceruleans[n].transform) == false || Ceruleans[n] != null){ n++; } Ceruleans[n + 1] = Ceruleans[n]; Ceruleans[n] = hitColliders[i].gameObject; } i++; break; // その他 default: i++; break; } } } ``` このコードは、前のコードに Cerulean[] = new GameObject[hitColliders.Length]; を入れて、配列の長さを指定してやりました。 一応書いておくと 配列名 = new 変数名[配列の長さ] 配列の長さは 配列名.Lenght で入手できます。 ありがとうございました。