今回はスクリプトからゲームオブジェクトに設定されているコンポーネントを無効にする方法についてです。
基本的な方法
基本的には次の様にGetComponent<T>()メソッドで取得したオブジェクトのenableプロパティを変更します。
this.GetComponent<T>().enebled = false;
<何らかのGameObject>.GetComponent<T>().enebled = false;
次の実例だとGetComponent<Collider>()の戻り値がColliderになっていますが、これはテンプレートに指定した型が戻されるという意味です。戻り値にはenableプロパティが用意されているので、falseを指定することで無効化できます。
別の方法
もしアタッチしたコンポーネントがテンプレートに指定できない場合、次の方法を試してください。
(this.GetComponent(typeof(クラス名))as クラス名).enebled = false;
(<何らかのGameObject>.GetComponent(typeof(クラス名))as クラス名).enebled = false;
キャストの方法は他にも
((クラス名)this.GetComponent(typeof(クラス名))).enebled = false;
テンプレートを指定しないので戻り値がComponent型になっていることに注目してください。Component型にはenabledプロパティが無いので、取得したオブジェクトをキャストしてから無効化します。
コーディングが面倒なのであまりやりたくありませんが、なぜかコンパイルできない場合に使ってみてください。もしかしたら古いバージョンのUnityではこの方法しか無いかもしれません。