異なるコンポーネントをループで一度にON/OFFする

通常、コンポーネントのON/OFFは[取得したコンポーネント].enable = true/falseで行える。
配列にコンポーネントを保存すればループで一度にスイッチできる。
が、当然異なるコンポーネントには使用できない。

似たような処理を行うが、種類が異なるコンポーネントを一度にON/OFFしたいことがあるかもしれない。……あるよね?
たとえば「炎を発射する魔法のコンポーネント」「周囲を氷付けにする魔法のコンポーネント」みたいな感じで。

その際は一度各コンポーネントを取得し、MonoBehaivour型の配列に格納することでループでまとめてスイッチすることが可能。

	uam = thisObj.AddComponent<UnitActionMove>();
	uaa = thisObj.AddComponent<UnitActionAttack>();
	uas = thisObj.AddComponent<UnitActionSkill>();

	MonoBehaviour[] monoComponents;
	monoComponents = new MonoBehaviour[NUM_BUTTON];

	monoComponents[0] = (MonoBehaviour)uam;
	monoComponents[1] = (MonoBehaviour)uaa;
	monoComponents[2] = (MonoBehaviour)uas;

	for(int ii = 0; ii < NUM_BUTTON; ii++)
	{
		monoComponents[ii].enabled = false;
	}

上の例だとUnitActionMove以下3種の異なるコンポーネントをmonoComponents配列への操作によって一度にON/OFFすることが可能になっている。