実現したいこと
UNITYで「配列にアタッチされたオブジェクトのコンポーネント」を取得したいのですがエラーとなってしまい、
なにかが違う…とは解っているのですが解決方法がどうしてもわからず、質問させていただきました。
前提条件
シーンには**オブジェクト「Shikaku」とオブジェクト「Maru」**だけがある状態です。
オブジェクト「Shikaku」にはShikakuScript.csがアタッチされており、
オブジェクト「Maru」にはMaruScript.csがアタッチされています。
※MaruScriptは何も書かれていないスクリプトです。
具体的に実現したいことは
『ShikakuScript内で、同スクリプト内に作った配列経由で「MaruScript」を取得する』という処理です。
ShikakuScriptの内容
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ShikakuScript : MonoBehaviour 6{ 7 8 public GameObject[] _ObjectList; 9 public MaruScript[] _ScriptList; 10 11 12 void Update() 13 { 14 int i = _ObjectList.Length; 15 int e = 0; 16 17 if (i != 1) 18 { 19 while (_ObjectList[e] == null) 20 { 21 _ScriptList = _ObjectList[e].MaruScript; 22 } 23 } 24 } 25 26}
#エラーの内容
Assets\Test\ShikakuScript.cs(21,46): error CS1061: 'GameObject' does not contain a definition for 'MaruScript' and no accessible extension method 'MaruScript' accepting a first argument of type 'GameObject' could be found (are you missing a using directive or an assembly reference?)
『「GameObject」に「MaruScript」の定義が含まれていないよ』と言われていることはわかるのですが、どう書けばいいのかわかりません。
#補足情報
「配列をやめればいい」のは当然なのですが、最終的に実現したい処理が
「同じスクリプトがアタッチされた不特定多数のオブジェクトを動的に取得してアクセスする」という処理である都合上、
配列という形式は外せず、途方に暮れています…。
基本的な事で申し訳ありませんが、よろしくお願いいたします!

回答1件
あなたの回答
tips
プレビュー