17/05/26 16:54:28.58 nZys6g5+.net
本を読んでわからないコードが出てきたので質問させてください
Sceneに、ObjectState.csというスクリプトをアタッチしたCubeを3つ
何もアタッチしてないCapsuleが1つあります
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コンポーネントは追加されずに本に書いてあるコード通りに動きます。
どなたか回答お願いします。