GameObject[] goArray = (GameObject[]) GameObject.FindObjectsOfType (typeof(GameObject)); foreach (GameObject go in goArray) { ObjectState z = go.GetComponent<ObjectState> (); if (z == null || z == this) { continue; } //処理 }
まず1行目なんですが、GameObject[]型へのキャストの型を、GameObject型にするとエラーになるのはなんででしょうか。 error CS0030: Cannot convert type `UnityEngine.Object[]' to `UnityEngine.GameObject' GameObject[]にGameObjectを代入が制限されるケースってあるんですか? それと、4行目のコードでgoArrayの要素にObjectStateコンポーネントがアタッチされてるか調べてると書いてあったんですけど、 これはgoにObjectStateコンポーネントを追加して代入してるふうにしか読めません。 しかしplayボタンを押すと、CapsuleにObjectStateコンポーネントは追加されずに本に書いてあるコード通りに動きます。 どなたか回答お願いします。